IDEMPIERE-282 Swing displaying labels for non-displayed parameters

This commit is contained in:
Carlos Ruiz 2012-05-29 00:35:45 -05:00
parent e92b43053f
commit 916b0dc1ec
3 changed files with 24 additions and 4 deletions

View File

@ -73,7 +73,7 @@ public class ProcessDialog extends CFrame
/** /**
* *
*/ */
private static final long serialVersionUID = 790447068287846414L; private static final long serialVersionUID = 7486479305726277406L;
/** /**
* @deprecated * @deprecated
@ -318,6 +318,7 @@ public class ProcessDialog extends CFrame
m_pi.setAD_User_ID (Env.getAD_User_ID(Env.getCtx())); m_pi.setAD_User_ID (Env.getAD_User_ID(Env.getCtx()));
m_pi.setAD_Client_ID(Env.getAD_Client_ID(Env.getCtx())); m_pi.setAD_Client_ID(Env.getAD_Client_ID(Env.getCtx()));
parameterPanel = new ProcessParameterPanel(m_WindowNo, m_pi); parameterPanel = new ProcessParameterPanel(m_WindowNo, m_pi);
parameterPanel.setWindow(this);
centerPanel.removeAll(); centerPanel.removeAll();
if (parameterPanel.init()) { if (parameterPanel.init()) {
// hasfields // hasfields

View File

@ -57,11 +57,11 @@ import org.compiere.util.Msg;
public class ProcessModalDialog extends CDialog public class ProcessModalDialog extends CDialog
implements ActionListener implements ActionListener
{ {
/** /**
* *
*/ */
private static final long serialVersionUID = 6613814452809135635L; private static final long serialVersionUID = -1573751323319156081L;
/** /**
* Dialog to start a process/report * Dialog to start a process/report
@ -303,6 +303,7 @@ public class ProcessModalDialog extends CDialog
m_pi.setAD_User_ID (Env.getAD_User_ID(Env.getCtx())); m_pi.setAD_User_ID (Env.getAD_User_ID(Env.getCtx()));
m_pi.setAD_Client_ID(Env.getAD_Client_ID(Env.getCtx())); m_pi.setAD_Client_ID(Env.getAD_Client_ID(Env.getCtx()));
parameterPanel = new ProcessParameterPanel(m_WindowNo, m_pi); parameterPanel = new ProcessParameterPanel(m_WindowNo, m_pi);
parameterPanel.setWindow(this);
centerPanel.removeAll(); centerPanel.removeAll();
if (parameterPanel.init()) { if (parameterPanel.init()) {
// hasfields // hasfields

View File

@ -18,6 +18,7 @@ import java.awt.Component;
import java.awt.GridBagConstraints; import java.awt.GridBagConstraints;
import java.awt.GridBagLayout; import java.awt.GridBagLayout;
import java.awt.Insets; import java.awt.Insets;
import java.awt.Window;
import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeEvent;
import java.beans.PropertyVetoException; import java.beans.PropertyVetoException;
import java.beans.VetoableChangeListener; import java.beans.VetoableChangeListener;
@ -63,7 +64,7 @@ public class ProcessParameterPanel extends CPanel implements VetoableChangeListe
/** /**
* *
*/ */
private static final long serialVersionUID = 4042260793108029845L; private static final long serialVersionUID = 3871379020889713432L;
/** /**
* Dynamic generated Parameter panel. * Dynamic generated Parameter panel.
@ -103,10 +104,12 @@ public class ProcessParameterPanel extends CPanel implements VetoableChangeListe
private ArrayList<GridField> m_mFields = new ArrayList<GridField>(); private ArrayList<GridField> m_mFields = new ArrayList<GridField>();
private ArrayList<GridField> m_mFields2 = new ArrayList<GridField>(); private ArrayList<GridField> m_mFields2 = new ArrayList<GridField>();
private ArrayList<JLabel> m_separators = new ArrayList<JLabel>(); private ArrayList<JLabel> m_separators = new ArrayList<JLabel>();
private ArrayList<JLabel> m_labels = new ArrayList<JLabel>();
// //
private BorderLayout mainLayout = new BorderLayout(); private BorderLayout mainLayout = new BorderLayout();
private CPanel centerPanel = new CPanel(); private CPanel centerPanel = new CPanel();
private GridBagLayout centerLayout = new GridBagLayout(); private GridBagLayout centerLayout = new GridBagLayout();
private Window m_win = null;
/** /**
* Static Layout * Static Layout
@ -129,6 +132,7 @@ public class ProcessParameterPanel extends CPanel implements VetoableChangeListe
m_mFields.clear(); m_mFields.clear();
m_mFields2.clear(); m_mFields2.clear();
m_separators.clear(); m_separators.clear();
m_labels.clear();
this.removeAll(); this.removeAll();
} // dispose } // dispose
@ -298,6 +302,7 @@ public class ProcessParameterPanel extends CPanel implements VetoableChangeListe
gbc.insets = labelInset; gbc.insets = labelInset;
centerPanel.add(label, gbc); centerPanel.add(label, gbc);
} }
m_labels.add(label);
// Field Preparation // Field Preparation
gbc.insets = fieldInset; gbc.insets = fieldInset;
@ -438,6 +443,7 @@ public class ProcessParameterPanel extends CPanel implements VetoableChangeListe
**/ **/
public void dynamicDisplay() { public void dynamicDisplay() {
Component[] comps = centerPanel.getComponents(); Component[] comps = centerPanel.getComponents();
boolean changedSize = false;
for (int i = 0; i < comps.length; i++) { for (int i = 0; i < comps.length; i++) {
Component comp = comps[i]; Component comp = comps[i];
if (comp instanceof CLabel) if (comp instanceof CLabel)
@ -450,7 +456,9 @@ public class ProcessParameterPanel extends CPanel implements VetoableChangeListe
if (m_mFields.get(index).isDisplayed(true)) { // check if (m_mFields.get(index).isDisplayed(true)) { // check
// context // context
if (!comp.isVisible()) { if (!comp.isVisible()) {
changedSize = true;
comp.setVisible(true); // visibility comp.setVisible(true); // visibility
m_labels.get(index).setVisible(true);
if (m_mFields.get(index).getVO().isRange) if (m_mFields.get(index).getVO().isRange)
m_separators.get(index).setText(" - "); m_separators.get(index).setText(" - ");
} }
@ -460,7 +468,9 @@ public class ProcessParameterPanel extends CPanel implements VetoableChangeListe
m_vEditors2.get(index).setReadWrite(rw); m_vEditors2.get(index).setReadWrite(rw);
} else { } else {
if (comp.isVisible()) { if (comp.isVisible()) {
changedSize = true;
comp.setVisible(false); comp.setVisible(false);
m_labels.get(index).setVisible(false);
if (m_mFields.get(index).getVO().isRange) if (m_mFields.get(index).getVO().isRange)
m_separators.get(index).setText(""); m_separators.get(index).setText("");
} }
@ -468,6 +478,10 @@ public class ProcessParameterPanel extends CPanel implements VetoableChangeListe
} }
} }
} }
if (m_win != null && changedSize) {
m_win.pack();
m_win.setLocationRelativeTo(null);
}
} // Dynamic Display. } // Dynamic Display.
/** /**
@ -633,4 +647,8 @@ public class ProcessParameterPanel extends CPanel implements VetoableChangeListe
f.restoreValue(); f.restoreValue();
} }
} }
public void setWindow(Window win) {
m_win = win;
}
} // ProcessParameterPanel } // ProcessParameterPanel