Merge 8ec4eb9e7161

This commit is contained in:
Heng Sin Low 2012-12-11 01:38:57 +08:00
commit a5adac4806
20 changed files with 142 additions and 101 deletions

View File

@ -30,5 +30,5 @@ INSERT INTO AD_Message (MsgType,MsgText,AD_Message_ID,EntityType,AD_Message_UU,V
INSERT INTO AD_Message_Trl (AD_Language,AD_Message_ID, MsgText,MsgTip, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy,AD_Message_Trl_UU ) SELECT l.AD_Language,t.AD_Message_ID, t.MsgText,t.MsgTip, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy,Generate_UUID() FROM AD_Language l, AD_Message t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Message_ID=200122 AND NOT EXISTS (SELECT * FROM AD_Message_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Message_ID=t.AD_Message_ID) INSERT INTO AD_Message_Trl (AD_Language,AD_Message_ID, MsgText,MsgTip, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy,AD_Message_Trl_UU ) SELECT l.AD_Language,t.AD_Message_ID, t.MsgText,t.MsgTip, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy,Generate_UUID() FROM AD_Language l, AD_Message t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Message_ID=200122 AND NOT EXISTS (SELECT * FROM AD_Message_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Message_ID=t.AD_Message_ID)
; ;
SELECT register_migration_script('101212102127_IDEMPIERE-293.sql') FROM dual SELECT register_migration_script('201212102127_IDEMPIERE-293.sql') FROM dual
; ;

View File

@ -30,5 +30,5 @@ INSERT INTO AD_Message (MsgType,MsgText,AD_Message_ID,EntityType,AD_Message_UU,V
INSERT INTO AD_Message_Trl (AD_Language,AD_Message_ID, MsgText,MsgTip, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy,AD_Message_Trl_UU ) SELECT l.AD_Language,t.AD_Message_ID, t.MsgText,t.MsgTip, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy,Generate_UUID() FROM AD_Language l, AD_Message t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Message_ID=200122 AND NOT EXISTS (SELECT * FROM AD_Message_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Message_ID=t.AD_Message_ID) INSERT INTO AD_Message_Trl (AD_Language,AD_Message_ID, MsgText,MsgTip, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy,AD_Message_Trl_UU ) SELECT l.AD_Language,t.AD_Message_ID, t.MsgText,t.MsgTip, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy,Generate_UUID() FROM AD_Language l, AD_Message t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Message_ID=200122 AND NOT EXISTS (SELECT * FROM AD_Message_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Message_ID=t.AD_Message_ID)
; ;
SELECT register_migration_script('101212102127_IDEMPIERE-293.sql') FROM dual SELECT register_migration_script('201212102127_IDEMPIERE-293.sql') FROM dual
; ;

View File

@ -107,4 +107,10 @@ public class ArchiveDB implements IArchiveStore {
archive.setByteData(deflatedData); archive.setByteData(deflatedData);
} }
@Override
public boolean deleteArchive(MArchive archive, MStorageProvider prov) {
return true;
}
} }

View File

@ -163,7 +163,7 @@ public class ArchiveFileSystem implements IArchiveStore {
BufferedOutputStream out = null; BufferedOutputStream out = null;
try { try {
// create destination folder // create destination folder
StringBuilder msgfile = new StringBuilder().append(archivePathRoot).append(File.separator) StringBuilder msgfile = new StringBuilder().append(archivePathRoot)
.append(archive.getArchivePathSnippet()); .append(archive.getArchivePathSnippet());
final File destFolder = new File(msgfile.toString()); final File destFolder = new File(msgfile.toString());
if (!destFolder.exists()) { if (!destFolder.exists()) {
@ -226,4 +226,23 @@ public class ArchiveFileSystem implements IArchiveStore {
return archivePathRoot; return archivePathRoot;
} }
@Override
public boolean deleteArchive(MArchive archive, MStorageProvider prov) {
String archivePathRoot = getArchivePathRoot(prov);
if ("".equals(archivePathRoot)) {
throw new IllegalArgumentException("no attachmentPath defined");
}
StringBuilder msgfile = new StringBuilder().append(archivePathRoot)
.append(archive.getArchivePathSnippet()).append(archive.get_ID()).append(".pdf");
File file=new File(msgfile.toString());
if (file !=null && file.exists()) {
if (!file.delete()) {
log.warning("unable to delete " + file.getAbsolutePath());
return false;
}
}
return true;
}
} }

View File

@ -97,7 +97,7 @@ public class GridTable extends AbstractTableModel
/** /**
* *
*/ */
private static final long serialVersionUID = 2328810326636468776L; private static final long serialVersionUID = -3181940154166340664L;
public static final String DATA_REFRESH_MESSAGE = "Refreshed"; public static final String DATA_REFRESH_MESSAGE = "Refreshed";
@ -109,7 +109,7 @@ public class GridTable extends AbstractTableModel
* @param TableName table name * @param TableName table name
* @param WindowNo window no * @param WindowNo window no
* @param TabNo tab no * @param TabNo tab no
* @param withAccessControl if true adds AD_Client/Org restrictuins * @param withAccessControl if true adds AD_Client/Org restrictions
*/ */
public GridTable(Properties ctx, int AD_Table_ID, String TableName, int WindowNo, int TabNo, public GridTable(Properties ctx, int AD_Table_ID, String TableName, int WindowNo, int TabNo,
boolean withAccessControl) boolean withAccessControl)
@ -878,7 +878,6 @@ public class GridTable extends AbstractTableModel
* @param col col * @param col col
* @param ascending ascending * @param ascending ascending
*/ */
@SuppressWarnings("unchecked")
public void sort (int col, boolean ascending) public void sort (int col, boolean ascending)
{ {
log.info("#" + col + " " + ascending); log.info("#" + col + " " + ascending);
@ -1144,7 +1143,7 @@ public class GridTable extends AbstractTableModel
Collections.reverse(toremove); Collections.reverse(toremove);
for(Integer row : toremove) for(Integer row : toremove)
{ {
m_sort.remove(row); m_sort.remove(row.intValue());
} }
} }
} }

View File

@ -19,5 +19,6 @@ public interface IArchiveStore {
public void save(MArchive archive, MStorageProvider prov,byte[] inflatedData); public void save(MArchive archive, MStorageProvider prov,byte[] inflatedData);
public boolean deleteArchive(MArchive archive, MStorageProvider prov);
} }

View File

@ -275,5 +275,14 @@ public class MArchive extends X_AD_Archive {
log.fine(toString()); log.fine(toString());
return true; return true;
} // beforeSave } // beforeSave
protected boolean beforeDelete ()
{
IArchiveStore prov = provider.getArchiveStore();
if (prov != null)
return prov.deleteArchive(this,provider);
return true;
}
} // MArchive } // MArchive

View File

@ -28,8 +28,11 @@ import org.compiere.util.CLogger;
*/ */
public class MAssetChange extends X_A_Asset_Change public class MAssetChange extends X_A_Asset_Change
{ {
private static final long serialVersionUID = 1L; /**
*
*/
private static final long serialVersionUID = 4083373951793617528L;
/** Static Logger */ /** Static Logger */
private static CLogger s_log = CLogger.getCLogger(MAssetChange.class); private static CLogger s_log = CLogger.getCLogger(MAssetChange.class);
@ -67,11 +70,6 @@ public class MAssetChange extends X_A_Asset_Change
return true; return true;
} // beforeSave } // beforeSave
/** ARHIPAC: TEO: BEGIN ------------------------------------------------------------------ */
public void setSerno(String value) { setSerNo(value); }
public void setVersionno(String value) { setVersionNo(value); }
public void setAd_User_ID(int value) { setAD_User_ID(value); }
public static MAssetChange createAddition(MAssetAddition assetAdd, MDepreciationWorkfile assetwk) { public static MAssetChange createAddition(MAssetAddition assetAdd, MDepreciationWorkfile assetwk) {
MAssetChange change = new MAssetChange (assetAdd.getCtx(), 0, assetAdd.get_TrxName()); MAssetChange change = new MAssetChange (assetAdd.getCtx(), 0, assetAdd.get_TrxName());
change.setAD_Org_ID(assetAdd.getAD_Org_ID()); //@win added change.setAD_Org_ID(assetAdd.getAD_Org_ID()); //@win added

View File

@ -3,10 +3,6 @@ package org.compiere.model;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.util.Properties; import java.util.Properties;
import org.compiere.model.CalloutEngine;
import org.compiere.model.GridField;
import org.compiere.model.GridTab;
import org.compiere.model.Query;
import org.compiere.util.ArhRuntimeException; import org.compiere.util.ArhRuntimeException;
import org.compiere.util.CCache; import org.compiere.util.CCache;
import org.compiere.util.Env; import org.compiere.util.Env;
@ -17,17 +13,14 @@ import org.compiere.util.Env;
*/ */
public class MAssetType extends X_A_Asset_Type public class MAssetType extends X_A_Asset_Type
{ {
private static final long serialVersionUID = 1L; /**
*
public static final String A_ASSET_TYPE_MFX = "MFX"; */
public static final String A_ASSET_TYPE_INV = "INV"; private static final long serialVersionUID = -1371478760221357780L;
public static final int A_ASSET_TYPE_ID_MFX = 1; private static final String A_ASSET_TYPE_MFX = "MFX"; // HARDCODED - you must create a Asset Type with Value=MFX to indicate is Fixed Asset
public static final int A_ASSET_TYPE_ID_INV = 2; private static final String A_ASSET_TYPE_INV = "INV"; // HARDCODED - you must create a Asset Type with Value=MFX to indicate is Inventory Object
public static final int A_ASSET_TYPE_ID_SUP = 3;
/** Obiecte tert */
public static final int A_ASSET_TYPE_ID_OIN = 4;
public static interface Model public static interface Model
{ {
/** Get Context */ /** Get Context */
@ -98,17 +91,13 @@ public class MAssetType extends X_A_Asset_Type
public static boolean isFixedAsset(int A_Asset_ID) public static boolean isFixedAsset(int A_Asset_ID)
{ {
final String whereClause = MAsset.COLUMNNAME_A_Asset_ID+"=?" MAsset asset = MAsset.get(Env.getCtx(), A_Asset_ID, null);
+" AND "+MAsset.COLUMNNAME_A_AssetType+"=?"; return isFixedAsset(asset);
return new Query(Env.getCtx(), MAsset.Table_Name, whereClause, null)
.setParameters(new Object[]{A_Asset_ID, A_ASSET_TYPE_MFX})
.match();
} }
public static boolean isFixedAsset(MAsset asset) public static boolean isFixedAsset(MAsset asset)
{ {
return asset != null && A_ASSET_TYPE_MFX.equals(asset.getA_Asset_Type()); return asset != null && A_ASSET_TYPE_MFX.equals(asset.getA_Asset_Type().getValue());
} }
public static boolean isFixedAssetGroup(Properties ctx, int A_Asset_Group_ID) public static boolean isFixedAssetGroup(Properties ctx, int A_Asset_Group_ID)
@ -150,7 +139,7 @@ public class MAssetType extends X_A_Asset_Type
/** /**
* Validate a Model * Validate a Model
* @param m model * @param m model
* @thorows ContextUserException * @throws ContextUserException
*/ */
public static void validate(Model m) public static void validate(Model m)
{ {

View File

@ -117,7 +117,7 @@ public class MClientShare extends X_AD_ClientShare
s_shares.put("0_0", Boolean.TRUE); s_shares.put("0_0", Boolean.TRUE);
} // load } // load
StringBuilder key = new StringBuilder().append(AD_Client_ID).append("_").append(AD_Table_ID); StringBuilder key = new StringBuilder().append(AD_Client_ID).append("_").append(AD_Table_ID);
return s_shares.get(key); return s_shares.get(key.toString());
} // load } // load
/** Shared Info */ /** Shared Info */

View File

@ -51,7 +51,7 @@ public class MEntityType extends X_AD_EntityType
* @param ctx context * @param ctx context
* @return entity type array * @return entity type array
*/ */
static public MEntityType[] getEntityTypes(Properties ctx) static synchronized public MEntityType[] getEntityTypes(Properties ctx)
{ {
if (s_entityTypes != null) if (s_entityTypes != null)
return s_entityTypes; return s_entityTypes;

View File

@ -363,7 +363,7 @@ public class MLookupFactory
{ {
// Try cache - assume no language change // Try cache - assume no language change
StringBuilder key = new StringBuilder().append(Env.getAD_Client_ID(ctx)).append("|").append(String.valueOf(AD_Reference_Value_ID)); StringBuilder key = new StringBuilder().append(Env.getAD_Client_ID(ctx)).append("|").append(String.valueOf(AD_Reference_Value_ID));
MLookupInfo retValue = (MLookupInfo)s_cacheRefTable.get(key); MLookupInfo retValue = (MLookupInfo)s_cacheRefTable.get(key.toString());
if (retValue != null) if (retValue != null)
{ {
s_log.finest("Cache: " + retValue); s_log.finest("Cache: " + retValue);
@ -687,8 +687,8 @@ public class MLookupFactory
//try cache //try cache
StringBuilder cacheKey = new StringBuilder().append(Env.getAD_Client_ID(ctx)).append("|").append(TableName).append(".").append(KeyColumn); StringBuilder cacheKey = new StringBuilder().append(Env.getAD_Client_ID(ctx)).append("|").append(TableName).append(".").append(KeyColumn);
if (s_cacheRefTable.containsKey(cacheKey)) if (s_cacheRefTable.containsKey(cacheKey.toString()))
return s_cacheRefTable.get(cacheKey).cloneIt(); return s_cacheRefTable.get(cacheKey.toString()).cloneIt();
ArrayList<LookupDisplayColumn> list = getListIdentifiers(TableName); ArrayList<LookupDisplayColumn> list = getListIdentifiers(TableName);

View File

@ -308,7 +308,7 @@ public class MMailText extends X_R_MailText
if (m_bpartner != null && m_bpartner.getAD_Language() != null) if (m_bpartner != null && m_bpartner.getAD_Language() != null)
{ {
StringBuilder key = new StringBuilder().append(m_bpartner.getAD_Language()).append(get_ID()); StringBuilder key = new StringBuilder().append(m_bpartner.getAD_Language()).append(get_ID());
MMailTextTrl trl = s_cacheTrl.get(key); MMailTextTrl trl = s_cacheTrl.get(key.toString());
if (trl == null) if (trl == null)
{ {
trl = getTranslation(m_bpartner.getAD_Language()); trl = getTranslation(m_bpartner.getAD_Language());

View File

@ -472,9 +472,10 @@ public class MProject extends X_C_Project
public MInvoice[] getMInvoices(){ public MInvoice[] getMInvoices(){
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.append(MInvoice.COLUMNNAME_C_Project_ID).append("=?"); sb.append(MInvoice.COLUMNNAME_C_Project_ID).append("=?");
Query qry = new Query(getCtx(), MInvoice.Table_Name, sb.toString(), get_TrxName()); List<MInvoice> list = new Query(getCtx(), MInvoice.Table_Name, sb.toString(), get_TrxName())
qry.setParameters(getC_Project_ID()); .setParameters(getC_Project_ID())
return (MInvoice[]) qry.list().toArray(); .list();
return list.toArray(new MInvoice[list.size()]);
} }
} // MProject } // MProject

View File

@ -55,6 +55,8 @@ import org.compiere.process.SvrProcess;
import org.compiere.report.MReportTree; import org.compiere.report.MReportTree;
import org.compiere.util.DB; import org.compiere.util.DB;
import org.compiere.util.Env; import org.compiere.util.Env;
import org.compiere.util.Language;
import org.compiere.util.Msg;
/** /**
* GL Journal Generator * GL Journal Generator
@ -410,6 +412,9 @@ public class GLJournalGenerate extends SvrProcess
j.setAD_Org_ID(journalGenerator.getAD_Org_ID()); j.setAD_Org_ID(journalGenerator.getAD_Org_ID());
else else
j.setAD_Org_ID(Env.getAD_Org_ID(getCtx())); j.setAD_Org_ID(Env.getAD_Org_ID(getCtx()));
if (j.getAD_Org_ID() == 0) {
throw new AdempiereException(Msg.getMsg(Language.getBaseAD_Language(), "Org0NotAllowed"));
}
j.setC_Currency_ID(as.getC_Currency_ID()); j.setC_Currency_ID(as.getC_Currency_ID());
j.setC_DocType_ID(journalGenerator.getC_DocType_ID()); j.setC_DocType_ID(journalGenerator.getC_DocType_ID());
j.setControlAmt(Env.ZERO); j.setControlAmt(Env.ZERO);
@ -512,11 +517,14 @@ public class GLJournalGenerate extends SvrProcess
if (j != null && p_DocAction != null) { if (j != null && p_DocAction != null) {
// DocAction // DocAction
if (!j.processIt(p_DocAction)) if (!j.processIt(p_DocAction))
throw new AdempiereException("Could not " + p_DocAction + " journal"); throw new AdempiereException("Couldn't set docAction: " + p_DocAction + ((org.compiere.process.DocAction) j).getProcessMsg()+ " journal");
j.saveEx(); j.saveEx();
} }
StringBuilder msg = new StringBuilder(Msg.parseTranslation(getCtx(), "@Created@ @GL_Journal_ID@=")).append(j.getDocumentNo());
addLog(j.get_ID(), null, null, msg.toString(), MJournal.Table_ID, j.get_ID());
return "@OK@" + (j != null ? " @Created@ @GL_Journal_ID@=" + j.getDocumentNo() : ""); return "@OK@";
} // doIt } // doIt
private BigDecimal applyMultiplierAndFactor(BigDecimal sourceAmt, BigDecimal amtMultiplier, int roundFactor) { private BigDecimal applyMultiplierAndFactor(BigDecimal sourceAmt, BigDecimal amtMultiplier, int roundFactor) {

View File

@ -49,7 +49,7 @@ public class AdempiereServerMgr
* Get Adempiere Server Manager * Get Adempiere Server Manager
* @return mgr * @return mgr
*/ */
public static AdempiereServerMgr get() public synchronized static AdempiereServerMgr get()
{ {
if (m_serverMgr == null) if (m_serverMgr == null)
{ {
@ -62,7 +62,7 @@ public class AdempiereServerMgr
} // get } // get
/** Singleton */ /** Singleton */
private static AdempiereServerMgr m_serverMgr = null; private static AdempiereServerMgr m_serverMgr = null;
/** Logger */ /** Logger */
protected CLogger log = CLogger.getCLogger(getClass()); protected CLogger log = CLogger.getCLogger(getClass());

View File

@ -798,7 +798,7 @@ public class MiniTable extends CTable implements IMiniTable
if(subtotal == null) if(subtotal == null)
subtotal = new Double(0); subtotal = new Double(0);
if(amt == null ) if(amt == null )
subtotal = new Double(0); amt = new Double(0);
total[col] = subtotal + amt; total[col] = subtotal + amt;
} }
@ -873,7 +873,7 @@ public class MiniTable extends CTable implements IMiniTable
if(subtotal == null) if(subtotal == null)
subtotal = new Double(0); subtotal = new Double(0);
if(amt == null ) if(amt == null )
subtotal = new Double(0); amt = new Double(0);
total[col] = subtotal + amt; total[col] = subtotal + amt;
} }

View File

@ -26,6 +26,7 @@ import java.sql.Timestamp;
import java.util.Date; import java.util.Date;
import java.util.logging.Level; import java.util.logging.Level;
import org.adempiere.util.Callback;
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.ConfirmPanel; import org.adempiere.webui.component.ConfirmPanel;
@ -48,6 +49,7 @@ import org.adempiere.webui.panel.ADForm;
import org.adempiere.webui.panel.CustomForm; import org.adempiere.webui.panel.CustomForm;
import org.adempiere.webui.panel.IFormController; import org.adempiere.webui.panel.IFormController;
import org.adempiere.webui.session.SessionManager; import org.adempiere.webui.session.SessionManager;
import org.adempiere.webui.window.FDialog;
import org.compiere.apps.form.Archive; import org.compiere.apps.form.Archive;
import org.compiere.model.MArchive; import org.compiere.model.MArchive;
import org.compiere.model.MLookup; import org.compiere.model.MLookup;
@ -111,6 +113,7 @@ public class WArchiveViewer extends Archive implements IFormController, EventLis
private Textbox helpField = new Textbox(); private Textbox helpField = new Textbox();
private ConfirmPanel confirmPanel = new ConfirmPanel(true); private ConfirmPanel confirmPanel = new ConfirmPanel(true);
private Button updateArchive = new Button(); private Button updateArchive = new Button();
private Button deleteArchive = new Button();
private Tabbox tabbox = new Tabbox(); private Tabbox tabbox = new Tabbox();
private Tabs tabs = new Tabs(); private Tabs tabs = new Tabs();
@ -194,15 +197,19 @@ public class WArchiveViewer extends Archive implements IFormController, EventLis
updateArchive.setTooltiptext(Msg.getMsg(Env.getCtx(), "Update")); updateArchive.setTooltiptext(Msg.getMsg(Env.getCtx(), "Update"));
updateArchive.addEventListener(Events.ON_CLICK, this); updateArchive.addEventListener(Events.ON_CLICK, this);
deleteArchive.setImage("/images/Delete24.png");
deleteArchive.setTooltiptext(Msg.getMsg(Env.getCtx(), "Delete"));
deleteArchive.addEventListener(Events.ON_CLICK, this);
bRefresh.setImage("/images/Refresh24.png"); bRefresh.setImage("/images/Refresh24.png");
bRefresh.setTooltiptext(Msg.getMsg(Env.getCtx(), "Refresh")); bRefresh.setTooltiptext(Msg.getMsg(Env.getCtx(), "Refresh"));
bRefresh.addEventListener(Events.ON_CLICK, this); bRefresh.addEventListener(Events.ON_CLICK, this);
bBack.setImage("/images/Parent24.png"); bBack.setImage("/images/wfBack24.png");
bBack.setTooltiptext(Msg.getMsg(Env.getCtx(), "Previous")); bBack.setTooltiptext(Msg.getMsg(Env.getCtx(), "Previous"));
bBack.addEventListener(Events.ON_CLICK, this); bBack.addEventListener(Events.ON_CLICK, this);
bNext.setImage("/images/Detail24.png"); bNext.setImage("/images/wfNext24.png");
bNext.setTooltiptext(Msg.getMsg(Env.getCtx(), "Next")); bNext.setTooltiptext(Msg.getMsg(Env.getCtx(), "Next"));
bNext.addEventListener(Events.ON_CLICK, this); bNext.addEventListener(Events.ON_CLICK, this);
@ -405,8 +412,9 @@ public class WArchiveViewer extends Archive implements IFormController, EventLis
row.setSpans("4"); row.setSpans("4");
div = new Div(); div = new Div();
div.setAlign("right"); div.setAlign("right");
div.appendChild(deleteArchive);
div.appendChild(bRefresh); div.appendChild(bRefresh);
div.appendChild(updateArchive); div.appendChild(updateArchive);
row.appendChild(div); row.appendChild(div);
createdByField.setReadonly(true); createdByField.setReadonly(true);
@ -449,6 +457,8 @@ public class WArchiveViewer extends Archive implements IFormController, EventLis
if (e.getTarget() == updateArchive) if (e.getTarget() == updateArchive)
cmd_updateArchive(); cmd_updateArchive();
else if(e.getTarget() == deleteArchive)
cmd_deleteArchive();
else if (e.getTarget().getId().equals(ConfirmPanel.A_CANCEL)) else if (e.getTarget().getId().equals(ConfirmPanel.A_CANCEL))
SessionManager.getAppDesktop().closeActiveWindow(); SessionManager.getAppDesktop().closeActiveWindow();
else if (e.getTarget().getId().equals(ConfirmPanel.A_OK)) else if (e.getTarget().getId().equals(ConfirmPanel.A_OK))
@ -479,16 +489,9 @@ public class WArchiveViewer extends Archive implements IFormController, EventLis
} }
} }
/* public void valueChange(ValueChangeEvent evt)
{
if (m_archives.length > 0)
updateArchive.setEnabled(true);
}
*/
/** /**
* Update Query Display * Update Query Display
*/ */
private void updateQDisplay() private void updateQDisplay()
{ {
boolean reports = reportField.isChecked(); boolean reports = reportField.isChecked();
@ -503,6 +506,23 @@ public class WArchiveViewer extends Archive implements IFormController, EventLis
bPartnerField.setVisible(!reports); bPartnerField.setVisible(!reports);
} // updateQDisplay } // updateQDisplay
public void cmd_deleteArchive(){
FDialog.ask(m_WindowNo, this.form, "DeleteRecord?", new Callback<Boolean>() {
@Override
public void onCallback(Boolean result)
{
if (result)
{
MArchive ar = m_archives[m_index];
ar.delete(true);
tabbox.setSelectedIndex(0);
dynInit();
}
}
});
}
/** /**
* Update View Display * Update View Display
* @param next show next Archive * @param next show next Archive
@ -526,13 +546,14 @@ public class WArchiveViewer extends Archive implements IFormController, EventLis
bBack.setEnabled(m_index > 0); bBack.setEnabled(m_index > 0);
bNext.setEnabled(m_index < m_archives.length-1); bNext.setEnabled(m_index < m_archives.length-1);
deleteArchive.setEnabled(m_archives.length > 0);
updateArchive.setEnabled(false); updateArchive.setEnabled(false);
log.info("Index=" + m_index + ", Length=" + m_archives.length); log.info("Index=" + m_index + ", Length=" + m_archives.length);
if (m_archives.length == 0) if (m_archives.length == 0)
{ {
positionInfo.setValue("No Record Found"); positionInfo.setValue(Msg.getMsg(Env.getCtx(), "NoRecordsFound"));
createdByField.setText(""); createdByField.setText("");
createdField.setValue(null); createdField.setValue(null);
nameField.setText(""); nameField.setText("");

View File

@ -20,6 +20,7 @@ import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -64,8 +65,11 @@ import org.zkoss.zul.Vbox;
*/ */
public class CustomizeGridViewPanel extends Panel public class CustomizeGridViewPanel extends Panel
{ {
/**
*
*/
private static final long serialVersionUID = -3190425241947591357L;
private static final long serialVersionUID = 4289328613547509587L;
private Map<Integer, String> m_columnsWidth; private Map<Integer, String> m_columnsWidth;
ArrayList<Integer> tableSeqs; ArrayList<Integer> tableSeqs;
GridView gridPanel = null; GridView gridPanel = null;
@ -131,9 +135,6 @@ public class CustomizeGridViewPanel extends Panel
noLabel.setValue(Msg.getMsg(Env.getCtx(), "Available")); noLabel.setValue(Msg.getMsg(Env.getCtx(), "Available"));
yesLabel.setValue(Msg.getMsg(Env.getCtx(), "Selected")); yesLabel.setValue(Msg.getMsg(Env.getCtx(), "Selected"));
yesList.setHeight("100%");
noList.setHeight("100%");
yesList.setVflex(true); yesList.setVflex(true);
noList.setVflex(true); noList.setVflex(true);
@ -157,9 +158,9 @@ public class CustomizeGridViewPanel extends Panel
migrateValueAcrossLists(event); migrateValueAcrossLists(event);
} }
}; };
yesList.setSeltype("multiple"); yesModel.setMultiple(true);
noList.setSeltype("multiple"); noModel.setMultiple(true);
bAdd.setImage("images/Next24.png"); bAdd.setImage("images/Next24.png");
bAdd.addEventListener(Events.ON_CLICK, actionListener); bAdd.addEventListener(Events.ON_CLICK, actionListener);
@ -396,14 +397,19 @@ public class CustomizeGridViewPanel extends Panel
} }
Listbox listFrom = (source == bAdd || source == noList) ? noList : yesList; Listbox listFrom = (source == bAdd || source == noList) ? noList : yesList;
Listbox listTo = (source == bAdd || source == noList) ? yesList : noList; Listbox listTo = (source == bAdd || source == noList) ? yesList : noList;
SimpleListModel lmFrom = (source == bAdd || source == noList) ? migrateLists (listFrom,listTo);
noModel : yesModel; }
SimpleListModel lmTo = (lmFrom == yesModel) ? noModel : yesModel;
void migrateLists (Listbox listFrom , Listbox listTo)
{
int index = 0;
SimpleListModel lmFrom = (SimpleListModel) listFrom.getModel();
SimpleListModel lmTo = (SimpleListModel) listTo.getModel();
Set<?> selectedItems = listFrom.getSelectedItems(); Set<?> selectedItems = listFrom.getSelectedItems();
List<ListElement> selObjects = new ArrayList<ListElement>(); List<ListElement> selObjects = new ArrayList<ListElement>();
for (Object obj : selectedItems) { for (Object obj : selectedItems) {
ListItem listItem = (ListItem) obj; ListItem listItem = (ListItem) obj;
int index = listFrom.getIndexOfItem(listItem); index = listFrom.getIndexOfItem(listItem);
ListElement selObject = (ListElement)lmFrom.getElementAt(index); ListElement selObject = (ListElement)lmFrom.getElementAt(index);
selObjects.add(selObject); selObjects.add(selObject);
} }
@ -415,19 +421,18 @@ public class CustomizeGridViewPanel extends Panel
lmFrom.removeElement(selObject); lmFrom.removeElement(selObject);
lmTo.addElement(selObject); lmTo.addElement(selObject);
} }
index = 0;
for (ListElement selObject : selObjects) for (ListElement selObject : selObjects)
{ {
int index = lmTo.indexOf(selObject); index = lmTo.indexOf(selObject);
listTo.setSelectedIndex(index); listTo.setSelectedIndex(index);
} }
if ( listTo.getSelectedItem() != null) if ( listTo.getSelectedItem() != null)
{ {
AuFocus focus = new AuFocus(listTo.getSelectedItem()); AuFocus focus = new AuFocus(listTo.getSelectedItem());
Clients.response(focus); Clients.response(focus);
} }
} // migrateValueAcrossLists }
/** /**
* Move within Yes List * Move within Yes List
@ -444,6 +449,7 @@ public class CustomizeGridViewPanel extends Panel
return; return;
// //
int[] indices = yesList.getSelectedIndices(); int[] indices = yesList.getSelectedIndices();
Arrays.sort(indices);
// //
boolean change = false; boolean change = false;
// //
@ -665,31 +671,16 @@ public class CustomizeGridViewPanel extends Panel
public void onEvent(Event event) throws Exception { public void onEvent(Event event) throws Exception {
if (event instanceof DropEvent) if (event instanceof DropEvent)
{ {
DropEvent me = (DropEvent) event; DropEvent me = (DropEvent) event;
ListItem endItem = (ListItem) me.getTarget(); ListItem endItem = (ListItem) me.getTarget();
if (!(endItem.getListbox() == yesList))
{
return; // move within noList
}
ListItem startItem = (ListItem) me.getDragged(); ListItem startItem = (ListItem) me.getDragged();
if (startItem.getListbox() == endItem.getListbox()) if (!(startItem.getListbox() == endItem.getListbox()))
{ {
return; //move within same list Listbox listFrom = (Listbox)startItem.getListbox();
Listbox listTo = (Listbox)endItem.getListbox();
migrateLists (listFrom,listTo);
} }
int startIndex = noList.getIndexOfItem(startItem);
Object element = noModel.getElementAt(startIndex);
noModel.removeElement(element);
int endIndex = yesList.getIndexOfItem(endItem);
yesModel.add(endIndex, element);
//
noList.clearSelection();
yesList.clearSelection();
yesList.setSelectedIndex(endIndex);
//
} }
} }
} }

View File

@ -194,8 +194,7 @@ public class ReportProcessor
} }
else if (para.getP_Number() != null) else if (para.getP_Number() != null)
{ {
if (para.getP_Number_To() != null if (para.getP_Number_To() != null)
&& !para.getP_Number_To().equals(""))
{ {
try try
{ {