diff --git a/client/src/org/compiere/apps/AMenuStartItem.java b/client/src/org/compiere/apps/AMenuStartItem.java index bffd9c83a4..2ffa0582f1 100644 --- a/client/src/org/compiere/apps/AMenuStartItem.java +++ b/client/src/org/compiere/apps/AMenuStartItem.java @@ -21,6 +21,7 @@ import java.awt.event.*; import java.sql.*; import java.util.logging.*; import javax.swing.*; + import org.compiere.apps.form.*; import org.compiere.model.*; import org.compiere.util.*; @@ -231,17 +232,24 @@ public class AMenuStartItem extends Thread implements ActionListener return; SwingUtilities.invokeLater(m_updatePB); // 2 - frame.pack(); - if (Ini.isPropertyBool(Ini.P_OPEN_WINDOW_MAXIMIZED) ) + if (Ini.isPropertyBool(Ini.P_OPEN_WINDOW_MAXIMIZED) ) + { + frame.pack(); frame.setExtendedState(Frame.MAXIMIZED_BOTH); + } // Center the window SwingUtilities.invokeLater(m_updatePB); // 3 - if (Ini.isPropertyBool(Ini.P_OPEN_WINDOW_MAXIMIZED) ) { + if (Ini.isPropertyBool(Ini.P_OPEN_WINDOW_MAXIMIZED) ) + { frame.setVisible(true); frame.toFront(); - } else + } + else + { + frame.validate(); AEnv.showCenterScreen(frame); + } m_menu.getWindowManager().add(frame); @@ -340,5 +348,5 @@ public class AMenuStartItem extends Thread implements ActionListener } else AEnv.showCenterScreen(ff); } // startForm - -} // StartItem \ No newline at end of file + +} // StartItem diff --git a/client/src/org/compiere/apps/APanel.java b/client/src/org/compiere/apps/APanel.java index 22b2d4ef2f..a1c9cb8678 100644 --- a/client/src/org/compiere/apps/APanel.java +++ b/client/src/org/compiere/apps/APanel.java @@ -646,6 +646,8 @@ public final class APanel extends CPanel // Size if (windowSize != null) setPreferredSize(windowSize); + else + revalidate(); Dimension size = getPreferredSize(); log.info( "fini - " + size); m_curWinTab.requestFocusInWindow(); @@ -1033,7 +1035,12 @@ public final class APanel extends CPanel } else // Cur Tab Setting { - m_mWorkbench.getMWindow(0).initTab(m_curTabIndex); + boolean needValidate = false; + if (m_mWorkbench.getMWindow(0).isTabInitialized(m_curTabIndex) == false) + { + m_mWorkbench.getMWindow(0).initTab(m_curTabIndex); + needValidate = true; + } m_curGC.activate(); m_curTab = m_curGC.getMTab(); @@ -1074,6 +1081,32 @@ public final class APanel extends CPanel m_curTab.navigateCurrent(); // updates counter m_curGC.dynamicDisplay(0); } + if (needValidate) + { + JFrame frame = Env.getFrame(APanel.this); + if (frame != null) + { + //not sure why, the following lines is needed to make dynamic resize work + //tested on jdk1.5, 1.6 using jgoodies look and feel + frame.getPreferredSize(); + + if (frame.getExtendedState() != JFrame.MAXIMIZED_BOTH) + { + frame.setMinimumSize(frame.getSize()); + revalidate(); + SwingUtilities.invokeLater(new Runnable() { + + public void run() { + JFrame frame = Env.getFrame(APanel.this); + frame.validate(); + AEnv.showCenterScreen(frame); + frame.setMinimumSize(null); + } + + }); + } + } + } // else ##CHANGE // m_curTab.navigateCurrent(); } @@ -2025,7 +2058,11 @@ public final class APanel extends CPanel this, m_curWindowNo, vButton.getProcess_ID(), table_ID, record_ID, startWOasking); if (dialog.isValid()) + { + dialog.validate(); + dialog.pack(); AEnv.showCenterWindow(Env.getWindow(m_curWindowNo), dialog); + } } // actionButton