From b3e061afdc4744b68049400e785a3077661f51cd Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Mon, 30 Dec 2013 20:34:31 -0500 Subject: [PATCH 1/5] IDEMPIERE-676 Empty section is not removed from main windows side bar / thanks to Jan Thielemann --- .../org/compiere/grid/tree/VTreePanel.java | 31 ++++++++++++++++--- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/org.adempiere.ui.swing/src/org/compiere/grid/tree/VTreePanel.java b/org.adempiere.ui.swing/src/org/compiere/grid/tree/VTreePanel.java index 3a08f126fd..75e3119fb3 100644 --- a/org.adempiere.ui.swing/src/org/compiere/grid/tree/VTreePanel.java +++ b/org.adempiere.ui.swing/src/org/compiere/grid/tree/VTreePanel.java @@ -913,25 +913,46 @@ public final class VTreePanel extends CPanel */ private void barRemove() { - //the button in on a JToolBar which is on a CPanel + /* + * Sidebar Hierachie: + * JXTaskPaneContainer (instance variable: bar) + * --JXTaskPane (parentPanel) + * ----JXCollapsiblePane + * ------JXCollapsiblePane$WrapperContainer + * --------JXPanel + * ----------JToolBar (parentBar) + */ + + //The button in on a JToolBar JToolBar parentBar = (JToolBar) m_buttonSelected.getParent(); + + //Get JXTaskPane for JToolBar (we want to remove this one from the "bar" if there are no more nodes) Container parentPanel = null; if(parentBar!=null){ - parentPanel = parentBar.getParent(); + parentPanel = parentBar.getParent().getParent().getParent().getParent(); } + + //Remove the entry from the JToolBar for (JToolBar jt : toolbar) { jt.remove(m_buttonSelected); } - if(parentPanel != null && parentBar.getComponentCount()==1){ - //only label left + //If we found the JXTaskPane for our toolbar and the toolbar is now empty, we want to remove the whole JXTaskPane + if(parentPanel != null && parentBar.getComponentCount()==0){ + + //Remove JXTaskPane from JXTaskPaneContainer bar.remove(parentPanel); - //remove from toolBarMap.. + + //Remove JToolBar from the toolBarMap.. toolbarMap.values().remove(parentBar); } + + //Recreate the Sidebar bar.validate(); bar.repaint(); + + //Persist the changes barDBupdate(false, Integer.parseInt(m_buttonSelected.getActionCommand())); } // barRemove From f7c94286ff2da16e3db451be1defe07aca2b9e59 Mon Sep 17 00:00:00 2001 From: dantam Date: Sun, 29 Dec 2013 13:08:51 +0100 Subject: [PATCH 2/5] IDEMPIERE-1653 - java.lang.ArrayIndexOutOfBoundsException when zooming in Swing Client --- org.adempiere.ui.swing/src/org/compiere/apps/AEnv.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/org.adempiere.ui.swing/src/org/compiere/apps/AEnv.java b/org.adempiere.ui.swing/src/org/compiere/apps/AEnv.java index 35c99fbd79..0f76fc7843 100644 --- a/org.adempiere.ui.swing/src/org/compiere/apps/AEnv.java +++ b/org.adempiere.ui.swing/src/org/compiere/apps/AEnv.java @@ -1088,7 +1088,7 @@ public final class AEnv */ public static void removeWindow (int WindowNo) { - if (WindowNo < s_windows.size()) + if (WindowNo>=0 && WindowNo < s_windows.size()) s_windows.set(WindowNo, null); } // removeWindow From 22bb2ab99941f23348c79bf8d06a0f3bbba5b4cf Mon Sep 17 00:00:00 2001 From: Heng Sin Low Date: Mon, 30 Dec 2013 17:47:52 +0800 Subject: [PATCH 3/5] 1003599 Payment Allocation: Allow user to enter applied amount that's more than the payment's open amount. Fixed applied amount calculation for payment with negative balance. --- org.adempiere.ui/src/org/compiere/apps/form/Allocation.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/org.adempiere.ui/src/org/compiere/apps/form/Allocation.java b/org.adempiere.ui/src/org/compiere/apps/form/Allocation.java index 7ef931b896..85473e3905 100644 --- a/org.adempiere.ui/src/org/compiere/apps/form/Allocation.java +++ b/org.adempiere.ui/src/org/compiere/apps/form/Allocation.java @@ -408,7 +408,7 @@ public class Allocation // selection of payment row if (((Boolean)payment.getValueAt(row, 0)).booleanValue()) { - applied = open; // Open Amount + applied = open.signum() > 0 ? open : BigDecimal.ZERO; // Open Amount if (totalDiff.abs().compareTo(applied.abs()) < 0 // where less is available to allocate than open && totalDiff.signum() == -applied.signum() ) // and the available amount has the opposite sign applied = totalDiff.negate(); // reduce the amount applied to what's available @@ -421,7 +421,7 @@ public class Allocation if (col == i_payment) { - if ( applied.signum() == -open.signum() ) + if ( open.signum() > 0 && applied.signum() == -open.signum() ) applied = applied.negate(); if (! MSysConfig.getBooleanValue("ALLOW_OVER_APPLIED_PAYMENT", false, Env.getAD_Client_ID(Env.getCtx()))) if ( open.abs().compareTo( applied.abs() ) < 0 ) From b0e2acb2a69f8d8eb109bba2ee630e6d8cc1d0c8 Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Mon, 30 Dec 2013 12:08:34 -0500 Subject: [PATCH 4/5] IDEMPIERE-1656 GL Journal Generator assigning wrong period --- .../src/org/globalqss/process/GLJournalGenerate.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/org.adempiere.base/src/org/globalqss/process/GLJournalGenerate.java b/org.adempiere.base/src/org/globalqss/process/GLJournalGenerate.java index 088ae036af..baabd9f0d3 100644 --- a/org.adempiere.base/src/org/globalqss/process/GLJournalGenerate.java +++ b/org.adempiere.base/src/org/globalqss/process/GLJournalGenerate.java @@ -47,6 +47,7 @@ import org.compiere.model.MJournalGenerator; import org.compiere.model.MJournalGeneratorLine; import org.compiere.model.MJournalGeneratorSource; import org.compiere.model.MJournalLine; +import org.compiere.model.MPeriod; import org.compiere.model.MProduct; import org.compiere.model.MTable; import org.compiere.model.PO; @@ -419,6 +420,9 @@ public class GLJournalGenerate extends SvrProcess j.setC_DocType_ID(journalGenerator.getC_DocType_ID()); j.setControlAmt(Env.ZERO); j.setDateAcct(p_DateAcct); + int C_Period_ID = MPeriod.getC_Period_ID(getCtx(), p_DateAcct, j.getAD_Org_ID()); + if (C_Period_ID > 0) + j.setC_Period_ID(C_Period_ID); j.setDateDoc(p_DateAcct); j.setDescription(journalGenerator.getDescription()); j.setDocumentNo(p_DocumentNo); From 85228c17e5edd82f8e5e319e81955881cf19c24d Mon Sep 17 00:00:00 2001 From: Thomas Bayen Date: Mon, 30 Dec 2013 20:39:45 -0500 Subject: [PATCH 5/5] IDEMPIERE-1254 Bug with fields based on lists in swing mode --- org.adempiere.base/src/org/compiere/util/ValueNamePair.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/org.adempiere.base/src/org/compiere/util/ValueNamePair.java b/org.adempiere.base/src/org/compiere/util/ValueNamePair.java index a36fa15c5d..619c89a24f 100644 --- a/org.adempiere.base/src/org/compiere/util/ValueNamePair.java +++ b/org.adempiere.base/src/org/compiere/util/ValueNamePair.java @@ -62,6 +62,8 @@ public final class ValueNamePair extends NamePair */ public String getID() { + if("".equals(m_value)) + return null; return m_value; } // getID