diff --git a/.classpath b/.classpath
index 723dc44168..15bed53638 100644
--- a/.classpath
+++ b/.classpath
@@ -136,5 +136,6 @@
+
diff --git a/client/src/org/compiere/grid/VPanel.java b/client/src/org/compiere/grid/VPanel.java
index 6821ca551b..a26bdd93ad 100644
--- a/client/src/org/compiere/grid/VPanel.java
+++ b/client/src/org/compiere/grid/VPanel.java
@@ -19,22 +19,26 @@ package org.compiere.grid;
import java.awt.BorderLayout;
import java.awt.Component;
-import java.awt.Dimension;
import java.awt.Event;
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
-import java.awt.Insets;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.JPanel;
+import javax.swing.JSeparator;
import javax.swing.KeyStroke;
-import javax.swing.border.CompoundBorder;
+
+import net.miginfocom.layout.BoundSize;
+import net.miginfocom.layout.ComponentWrapper;
+import net.miginfocom.layout.ConstraintParser;
+import net.miginfocom.layout.LayoutCallback;
+import net.miginfocom.layout.UnitValue;
+import net.miginfocom.swing.MigLayout;
+import net.miginfocom.swing.SwingComponentWrapper;
+import net.miginfocom.swing.SwingContainerWrapper;
import org.adempiere.plaf.AdempierePLAF;
import org.compiere.apps.APanel;
@@ -50,35 +54,21 @@ import org.compiere.swing.CPanel;
import org.compiere.swing.CTabbedPane;
import org.compiere.swing.CollapsiblePanel;
import org.compiere.util.CLogger;
+import org.compiere.util.DB;
import org.compiere.util.DisplayType;
import org.compiere.util.Language;
import org.compiere.util.Util;
import org.jdesktop.swingx.JXCollapsiblePane;
import org.jdesktop.swingx.border.DropShadowBorder;
+import com.lowagie.text.Font;
+
/**
* Single Row Panel.
* Called from GridController
- *
- * Structure
- * this (CPanel - Group Bag Layout)
- * group
- * label - field
+ *
+ * Uses MigLayout
*
- * Spacing:
- * -------------------
- * Total Top = 10+2
- * Total Right = 0+12
- * Total Left = 0+12
- * Total Bottom = 3+9
- * -------------------
- * 2
- * 12 Label 0+5 Field 0
- * 3+2=5
- * 12 Label 0+5 Field 0
- * 3
- *
- *
* @author Jorg Janke
* @version $Id: VPanel.java,v 1.3 2006/07/30 00:51:28 jjanke Exp $
* @contributor Victor Perez , e-Evolution.SC FR [ 1757088 ]
@@ -93,7 +83,12 @@ public final class VPanel extends CTabbedPane
private static final long serialVersionUID = 8227080366665213627L;
private int m_WindowNo;
-
+ // show layout grid
+ private boolean debug = false;
+ private String defaultLayoutConstraints;
+ private int labelMinWidth = 0;
+ private int fieldMinWidth = 0;
+
public VPanel(String Name)
{
this(Name, 0);
@@ -108,30 +103,16 @@ public final class VPanel extends CTabbedPane
{
m_WindowNo = WindowNo;
- //set up map used for label and field alignment
- labels.put(0, new ArrayList());
- labels.put(2, new ArrayList());
- // for the case of a right-to-left-language (e.g. arabic)
- labels.put(1, new ArrayList());
- labels.put(3, new ArrayList());
+ defaultLayoutConstraints = "hidemode 3"; // hidden fields take no part in grid
+ defaultLayoutConstraints += debug ? ", debug" : "";
-
- fields.put(1, new ArrayList());
- fields.put(3, new ArrayList());
- // for the case of a right-to-left-language (e.g. arabic)
- fields.put(0, new ArrayList());
- fields.put(2, new ArrayList());
-
- fillers.put(0, new ArrayList());
- fillers.put(2, new ArrayList());
- // for the case of a right-to-left-language (e.g. arabic)
- fillers.put(1, new ArrayList());
- fillers.put(3, new ArrayList());
-
- //[ 1757088 ]
+ //[ 1757088 ]
m_main.setName(Name);
- setupMainPanelLayout(m_main);
- m_main.setBorder(new CompoundBorder(m_main.getBorder(), BorderFactory.createEmptyBorder(10, 12, 0, 12)));
+ String constraints = defaultLayoutConstraints;
+ MigLayout mainLayout = new MigLayout(constraints);
+ mainLayout.addLayoutCallback(callback);
+ m_main.setLayout(mainLayout);
+
m_tablist.put("main", m_main);
this.setBorder(marginBorder);
@@ -139,63 +120,58 @@ public final class VPanel extends CTabbedPane
dummy.setLayout(new BorderLayout());
dummy.add(m_main, BorderLayout.NORTH);
dummy.setName(m_main.getName());
- this.add(dummy);
-
- // Set initial values of constraint
- m_gbc.anchor = GridBagConstraints.NORTHWEST;
- m_gbc.gridy = 0; // line
- m_gbc.gridx = 0;
- m_gbc.gridheight = 1;
- m_gbc.gridwidth = 1;
- m_gbc.insets = m_zeroInset;
- m_gbc.fill = GridBagConstraints.HORIZONTAL;
- m_gbc.weightx = 0;
- m_gbc.weighty = 0;
- m_gbc.ipadx = 0;
- m_gbc.ipady = 0;
-
+ this.add(dummy);
} // VPanel
- /** GridBag Constraint */
- private GridBagConstraints m_gbc = new GridBagConstraints();
-
/** Orientation */
private final boolean m_leftToRight = Language.getLoginLanguage().isLeftToRight();
- /** Label Inset */
- private final Insets m_labelInset =
- m_leftToRight ? new Insets(1,12,1,0) : new Insets(1,5,1,0); // top,left,bottom,right
- private final Insets m_firstLabelInset =
- m_leftToRight ? new Insets(1,0,1,0) : new Insets(1,5,1,0); // top,left,bottom,right
- /** Field Inset */
- private final Insets m_fieldInset =
- m_leftToRight ? new Insets(1,5,1,0) : new Insets(1,12,1,0); // top,left,bottom,right
- /** Zero Inset */
- private final Insets m_zeroInset = new Insets(0,0,0,0);
- //
- private int m_line = 0;
- private boolean m_hGapAdded = false; // only once
/** Previous Field Group Header */
private String m_oldFieldGroup = null;
/** Previous Field Group Type */
private String m_oldFieldGroupType = null;
- /** Previous Field Is Same Line */
- private boolean m_oldSameLine = false;
- /** Previous Field Size */
- private boolean m_oldLongField = false;
//[ 1757088 ]
private java.util.Hashtable m_tablist = new java.util.Hashtable();
private java.util.Hashtable m_tabincludelist = new java.util.Hashtable();
private CPanel m_main = new CPanel(org.compiere.plaf.CompiereColor.getDefaultBackground());
private DropShadowBorder marginBorder = new DropShadowBorder();
- private HashMap> labels = new HashMap>();
-
- private HashMap> fields = new HashMap>();
- private HashMap> fillers = new HashMap>();
+ /**
+ * Use layout callback to implement size groups across panels
+ * and to shrink hidden components vertically.
+ */
+ private LayoutCallback callback = new LayoutCallback() {
- private HashMap collapsibleEndFiller = new HashMap();
+ // Set the min and preferred sizes to match the largest component
+ public BoundSize[] getSize(ComponentWrapper comp)
+ {
+ if (comp.getComponent() instanceof CLabel) {
+ Component c = (Component) comp.getComponent();
+ int w = labelMinWidth;
+ int h = c.getPreferredSize().height;
+ BoundSize width = ConstraintParser.parseBoundSize(w + ":" + w, false, true); // min:pref
+ BoundSize height = ConstraintParser.parseBoundSize(h + ":" + h, false, false);
+
+ return new BoundSize[] {width, height};
+ }
+ else
+ {
+ Component c = (Component) comp.getComponent();
+ int w = fieldMinWidth;
+ int h = c.getPreferredSize().height;
+ BoundSize width = ConstraintParser.parseBoundSize(w + ":" + w, false, true);
+ BoundSize height = ConstraintParser.parseBoundSize(h + ":" + h, false, false);
+
+ return new BoundSize[] {width, height};
+ }
+
+ }//
+
+ public void correctBounds(ComponentWrapper comp)
+ {
+ }
+ };
/** Logger */
private static CLogger log = CLogger.getCLogger (VPanel.class);
@@ -211,7 +187,7 @@ public final class VPanel extends CTabbedPane
return;
String text = mField.getHeader();
int pos = text.indexOf('&');
- if (pos != -1 && text.length() > pos) // We have a nemonic - creates Ctrl_Shift_
+ if (pos != -1 && text.length() > pos) // We have a mnemonic - creates Ctrl_Shift_
{
char mnemonic = text.toUpperCase().charAt(pos+1);
if (mnemonic != ' ')
@@ -239,20 +215,9 @@ public final class VPanel extends CTabbedPane
int AD_Tab_ID = mField.getIncluded_Tab_ID();
if(AD_Tab_ID != 0 )
{
- m_gbc.gridx = 0;
- m_gbc.gridy = m_line++;
CollapsiblePanel m_tab = new CollapsiblePanel("");
m_tabincludelist.put(AD_Tab_ID, m_tab);
- m_gbc.anchor = GridBagConstraints.NORTHWEST;
- m_gbc.gridx = 0;
- m_gbc.gridheight = 1;
- m_gbc.insets = new Insets(2,0,0,0);
- m_gbc.gridy = m_line++;
- m_gbc.gridwidth = 5;
- m_gbc.fill = GridBagConstraints.HORIZONTAL;
- m_gbc.weightx = 1;
- m_gbc.ipadx = 0;
- m_main.add(m_tab,m_gbc);
+ m_main.add(m_tab,"newline, spanx, growx");
m_tab.setName("IncludedTab#"+AD_Tab_ID);
if (includedTabList.containsKey(AD_Tab_ID))
@@ -267,9 +232,7 @@ public final class VPanel extends CTabbedPane
return;
boolean sameLine = mField.isSameLine();
- if (sameLine && (m_oldSameLine || m_oldLongField))
- sameLine = false;
-
+
//[ 1757088 ] // sets top
String fieldGroup = mField.getFieldGroup();
String fieldGroupType = mField.getFieldGroupType();
@@ -293,113 +256,79 @@ public final class VPanel extends CTabbedPane
fieldGroup = m_oldFieldGroup;
fieldGroupType = m_oldFieldGroupType;
}
-
- if (sameLine) // Set line #
- m_gbc.gridy = m_line-1;
- else
- m_gbc.gridy = m_line++;
-
- // *** The Label ***
- if (label != null)
+
+ // label constraints
+ String constraints = "align trailing";
+ if ( !sameLine )
{
- m_gbc.gridwidth = 1;
- m_gbc.insets = m_labelInset;
- m_gbc.fill = GridBagConstraints.HORIZONTAL; // required for right justified
- // Set column #
- if (m_leftToRight)
- m_gbc.gridx = mField.isSameLine() ? 2 : 0;
- else
- m_gbc.gridx = mField.isSameLine() | mField.isLongField() ? 3 : 1;
- if (m_gbc.gridx == 0)
- m_gbc.insets = m_firstLabelInset;
- // Weight factor for Label
- m_gbc.weightx = 0;
- //
- if (mField.isCreateMnemonic())
- setMnemonic(label, mField.getMnemonic());
- // Add Label
- //[ 1757088 ]
- //this.add(label, m_gbc);
- if (fieldGroupType.equals(X_AD_FieldGroup.FIELDGROUPTYPE_Tab))
- {
- CPanel m_tab = (CPanel)m_tablist.get(fieldGroup);
- m_tab.add(label, m_gbc);
-
- }
- else if (fieldGroupType.equals(X_AD_FieldGroup.FIELDGROUPTYPE_Collapse))
- {
- CollapsiblePanel m_tab = (CollapsiblePanel) m_tablist.get(fieldGroup);
- if (m_gbc.gridx == 0)
- m_gbc.insets = m_firstLabelInset;
- m_tab.getCollapsiblePane().getContentPane().add(label, m_gbc);
- labels.get(m_gbc.gridx).add(label);
-
- moveCollapsibleEndFiller(m_tab.getCollapsiblePane());
- }
- else // Label or null
- {
- m_main.add(label, m_gbc);
- labels.get(m_gbc.gridx).add(label);
- }
+ constraints += ", newline";
}
+
+ // *** The Label ***
+ if ( label == null)
+ label = new CLabel("");
+ //
+ if (mField.isCreateMnemonic())
+ setMnemonic(label, mField.getMnemonic());
+
+ if (fieldGroupType.equals(X_AD_FieldGroup.FIELDGROUPTYPE_Tab))
+ {
+ CPanel m_tab = (CPanel)m_tablist.get(fieldGroup);
+ m_tab.add(label, constraints);
+ }
+ else if (fieldGroupType.equals(X_AD_FieldGroup.FIELDGROUPTYPE_Collapse))
+ {
+ CollapsiblePanel m_tab = (CollapsiblePanel) m_tablist.get(fieldGroup);
+ m_tab.getCollapsiblePane().getContentPane().add(label, constraints);
+ }
+ else // Label
+ {
+ m_main.add(label, constraints);
+ }
+
+ int currentWidth = label.getPreferredSize().width;
+ labelMinWidth = currentWidth > labelMinWidth ? currentWidth : labelMinWidth;
// *** The Field ***
if (editor != null)
{
Component field = (Component)editor;
- // Default Width
- m_gbc.gridwidth = mField.isLongField() ? 3 : 1;
- m_gbc.insets = m_fieldInset;
- // m_gbc.fill = GridBagConstraints.NONE;
- m_gbc.fill = GridBagConstraints.HORIZONTAL;
- // Set column #
- if (m_leftToRight)
- m_gbc.gridx = mField.isSameLine() ? 3 : 1;
- else
- m_gbc.gridx = mField.isSameLine() ? 2 : 0;
- // Weight factor for Fields
- m_gbc.weightx = 1;
+ // field constraints
+ // long fields span all remaining columns
+ constraints = "growx, pushx";
+ if ( mField.isLongField() )
+ {
+ constraints += mField.isLongField() ? ",spanx" : "";
+ }
+
// Add Field
//[ 1757088 ]
if (fieldGroupType.equals(X_AD_FieldGroup.FIELDGROUPTYPE_Tab))
{
CPanel m_tab = (CPanel)m_tablist.get(fieldGroup);
- m_tab.add(field, m_gbc);
+ m_tab.add(field, constraints);
}
else if (fieldGroupType.equals(X_AD_FieldGroup.FIELDGROUPTYPE_Collapse))
{
- boolean textArea = false;
CollapsiblePanel m_tab = (CollapsiblePanel) m_tablist.get(fieldGroup);
+ Component comp = (Component) editor;
+ comp.setMinimumSize(comp.getPreferredSize());
if (mField.getDisplayType() == DisplayType.Text
- || mField.getDisplayType() == DisplayType.TextLong
- || mField.getDisplayType() == DisplayType.Memo)
+ || mField.getDisplayType() == DisplayType.Memo
+ ||mField.getDisplayType() == DisplayType.TextLong )
{
- textArea = true;
+ Component component = (Component) editor;
+ component.setMinimumSize(component.getPreferredSize());
}
- if (textArea)
- {
- m_gbc.gridheight = 1;
- m_gbc.weighty = 1;
- m_gbc.fill = GridBagConstraints.BOTH;
- }
- m_tab.getCollapsiblePane().getContentPane().add(field, m_gbc);
- if (textArea)
- {
- m_gbc.gridheight = 1;
- m_gbc.weighty = 0;
- m_gbc.fill = GridBagConstraints.HORIZONTAL;
- }
-
if (!mField.isLongField())
- fields.get(m_gbc.gridx).add(field);
-
- moveCollapsibleEndFiller(m_tab.getCollapsiblePane());
+ fieldMinWidth = field.getPreferredSize().width > fieldMinWidth ? field.getPreferredSize().width : fieldMinWidth;
+ m_tab.getCollapsiblePane().getContentPane().add(field, constraints);
}
else // Label or null
{
- m_main.add(field, m_gbc);
- if (!mField.isLongField())
- fields.get(m_gbc.gridx).add(field);
+ m_main.add(field, constraints);
+ if (!mField.isLongField())
+ fieldMinWidth = field.getPreferredSize().width > fieldMinWidth ? field.getPreferredSize().width : fieldMinWidth;
}
// Link Label to Field
if (label != null)
@@ -407,27 +336,8 @@ public final class VPanel extends CTabbedPane
else if (mField.isCreateMnemonic())
setMnemonic(editor, mField.getMnemonic());
}
- m_oldSameLine = sameLine;
- m_oldLongField = (mField.isLongField() || mField.isSameLine());
} // addField
- /**
- * Move the end spacer of the collapsible pane
- * @param collapsiblePane
- */
- private void moveCollapsibleEndFiller(JXCollapsiblePane collapsiblePane) {
- Component end = collapsibleEndFiller.get(collapsiblePane);
- if (end != null) {
- collapsiblePane.getContentPane().remove(end);
- GridBagConstraints gbc = new GridBagConstraints();
- gbc.gridheight = 1;
- gbc.gridwidth = 1;
- gbc.gridx = 0;
- gbc.gridy = m_gbc.gridy + 1;
- collapsiblePane.getContentPane().add(end, gbc);
- }
- }
-
/**
* Add Group
* @param fieldGroup field group
@@ -458,7 +368,10 @@ public final class VPanel extends CTabbedPane
CPanel m_tab = new CPanel();
m_tab.setBackground(AdempierePLAF.getFormBackground());
- setupTabPanelLayout(m_tab);
+ String tpConstraints = defaultLayoutConstraints ;
+ MigLayout layout = new MigLayout(tpConstraints);
+ layout.addLayoutCallback(callback);
+ m_tab.setLayout(layout);
m_tab.setName(fieldGroup);
CPanel dummy = new CPanel();
dummy.setLayout(new BorderLayout());
@@ -474,216 +387,44 @@ public final class VPanel extends CTabbedPane
JXCollapsiblePane m_tab = collapsibleSection.getCollapsiblePane();
m_tab.setAnimated(false);
m_tab.getContentPane().setBackground(AdempierePLAF.getFormBackground());
- setupCollapsiblePaneLayout(m_tab);
- CompoundBorder border = (CompoundBorder)m_tab.getBorder();
- m_tab.setBorder(new CompoundBorder(border.getOutsideBorder(), BorderFactory.createEmptyBorder(0, 0, 2, 0)));
+
+ String cpConstraints = defaultLayoutConstraints;
+ // 0 inset left and right as this is a nested panel
+ // 0 inset top because of the struts added below
+ cpConstraints += ", ins 0 0 n 0";
+
+ MigLayout layout = new MigLayout(cpConstraints);
+ layout.addLayoutCallback(callback);
+
collapsibleSection.setName(fieldGroup);
- m_gbc.anchor = GridBagConstraints.NORTHWEST;
- //m_gbc.gridy = 0; // line
- m_gbc.gridx = 0;
- m_gbc.gridheight = 1;
- if (m_oldFieldGroup.length() > 0 && m_oldFieldGroupType.equals(X_AD_FieldGroup.FIELDGROUPTYPE_Collapse))
- m_gbc.insets = new Insets(0,0,3,0);
- else
- m_gbc.insets = new Insets(3,0,3,0);
- m_gbc.gridy = m_line++;
- m_gbc.gridwidth = 4;
- m_gbc.fill = GridBagConstraints.HORIZONTAL;
- m_gbc.weightx = 1;
- m_main.add(collapsibleSection,m_gbc);
+ m_main.add(collapsibleSection, "newline, spanx, growx");
+ m_tab.setLayout(layout);
+ /* for compatibility with old layout, force collapsible field groups
+ * to have a minimum of two columns by inserting invisible components
+ */
+ Component strut1 = Box.createVerticalStrut(1);
+ strut1.setName("vstrut1"+fieldGroup);
+ Component strut2 = Box.createVerticalStrut(1);
+ strut2.setName("vstrut2"+fieldGroup);
+ m_tab.add(new CLabel(""), "gap 0 0 0 0");
+ m_tab.add(strut1, "pushx, growx, gap 0 0 0 0");
+ m_tab.add(new CLabel(""), "");
+ m_tab.add(strut2, "pushx, growx, gap 0 0 0 0, wrap");
m_tablist.put(fieldGroup, collapsibleSection);
}
else // Label or null
{
- CPanel group = new CPanel();
- group.setBorder(new VLine(fieldGroup));
- group.add(Box.createVerticalStrut(VLine.SPACE));
- m_gbc.gridx = 0;
- m_gbc.gridy = m_line++;
- m_gbc.gridwidth = 4;
- m_main.add(group, m_gbc);
+ CLabel label = new CLabel(fieldGroup, CLabel.LEADING);
+ label.setFont(AdempierePLAF.getFont_Label().deriveFont(Font.BOLDITALIC, AdempierePLAF.getFont_Label().getSize2D()));
+ m_main.add(label, "newline, alignx leading");
+ m_main.add(new JSeparator(), "newline, spanx, growx");
// reset
- m_gbc.gridwidth = 1;
}
m_oldFieldGroup = fieldGroup;
m_oldFieldGroupType = fieldGroupType;
return true;
} // addGroup
- /**
- * Set up the gridbaglayout for additonal field group tab
- * @param m_tab
- */
- private void setupMainPanelLayout(CPanel m_tab) {
- m_tab.setLayout(new GridBagLayout());
-
- GridBagConstraints gbc = new GridBagConstraints();
- gbc.anchor = GridBagConstraints.NORTHWEST;
- gbc.gridy = 0; // line
- gbc.gridx = 0;
- gbc.gridheight = 0;
- gbc.gridwidth = 1;
- gbc.insets = m_firstLabelInset;
- gbc.fill = GridBagConstraints.NONE;
- gbc.weightx = 0;
- gbc.weighty = 0;
- gbc.ipadx = 0;
- gbc.ipady = 0;
- CLabel label = new CLabel("");
- fillers.get(0).add(label);
- m_tab.add(label, gbc);
-
- gbc.weightx = 1;
- gbc.gridx = 1;
- gbc.insets = m_fieldInset;
- label = new CLabel("");
- fields.get(1).add(label);
- m_tab.add(label, gbc);
-
- gbc.weightx = 0;
- gbc.gridx = 2;
- gbc.insets = m_labelInset;
- label = new CLabel("");
- fillers.get(2).add(label);
- m_tab.add(label, gbc);
-
- gbc.weightx = 1;
- gbc.gridx = 3;
- gbc.insets = m_fieldInset;
- label = new CLabel("");
- fields.get(3).add(label);
- m_tab.add(label, gbc);
-
- //right gap
- gbc.weightx = 1;
- gbc.gridx = 4;
- m_tab.add(Box.createHorizontalGlue(), gbc);
-
- }
-
- /**
- * Set up the gridbaglayout for additonal field group tab
- * @param m_tab
- */
- private void setupTabPanelLayout(CPanel m_tab) {
- m_tab.setLayout(new GridBagLayout());
-
- GridBagConstraints gbc = new GridBagConstraints();
- gbc.anchor = GridBagConstraints.NORTHWEST;
- gbc.gridy = 0; // line
- gbc.gridx = 0;
- gbc.gridheight = 0;
- gbc.gridwidth = 1;
- gbc.insets = m_firstLabelInset;
- gbc.fill = GridBagConstraints.NONE;
- gbc.weightx = 0;
- gbc.weighty = 0;
- gbc.ipadx = 0;
- gbc.ipady = 0;
- CLabel label = new CLabel("");
- m_tab.add(label, gbc);
-
- gbc.weightx = 1;
- gbc.gridx = 1;
- gbc.insets = m_fieldInset;
- label = new CLabel("");
- m_tab.add(label, gbc);
-
- gbc.weightx = 0;
- gbc.gridx = 2;
- gbc.insets = m_labelInset;
- label = new CLabel("");
- m_tab.add(label, gbc);
-
- gbc.weightx = 1;
- gbc.gridx = 3;
- gbc.insets = m_fieldInset;
- fields.get(3).add(label);
- m_tab.add(label, gbc);
-
- //right gap
- gbc.weightx = 1;
- gbc.gridx = 4;
- m_tab.add(Box.createHorizontalGlue(), gbc);
-
- }
-
- /**
- * Set up the grid bag layout of collapsible pane
- * @param m_tab
- */
- private void setupCollapsiblePaneLayout(JXCollapsiblePane m_tab) {
- m_tab.getContentPane().setLayout(new GridBagLayout());
-
- GridBagConstraints gbc = new GridBagConstraints();
- gbc.anchor = GridBagConstraints.NORTHWEST;
- gbc.gridy = 0; // line
- gbc.gridx = 0;
- gbc.gridheight = 0;
- gbc.gridwidth = 1;
- gbc.insets = m_firstLabelInset;
- gbc.fill = GridBagConstraints.NONE;
- gbc.weightx = 0;
- gbc.weighty = 0;
- gbc.ipadx = 0;
- gbc.ipady = 0;
- CLabel label = new CLabel("");
- fillers.get(0).add(label);
- m_tab.getContentPane().add(label, gbc);
-
- gbc.weightx = 1;
- gbc.gridx = 1;
- gbc.insets = m_fieldInset;
- label = new CLabel("");
- fields.get(1).add(label);
- m_tab.getContentPane().add(label, gbc);
-
- gbc.weightx = 0;
- gbc.gridx = 2;
- gbc.insets = m_labelInset;
- label = new CLabel("");
- fillers.get(2).add(label);
- m_tab.getContentPane().add(label, gbc);
-
- gbc.weightx = 1;
- gbc.gridx = 3;
- gbc.insets = m_fieldInset;
- label = new CLabel("");
- fields.get(3).add(label);
- m_tab.getContentPane().add(label, gbc);
-
- //right gap
- /*
- gbc.weightx = 1;
- gbc.gridx = 4;
- m_tab.getContentPane().add(Box.createHorizontalGlue(), gbc);*/
-
- Component c = Box.createVerticalStrut(3);
- gbc.gridheight = 1;
- gbc.gridy = GridBagConstraints.RELATIVE;
- gbc.gridx = 0;
- gbc.weightx = 0;
- gbc.insets = m_zeroInset;
- m_tab.getContentPane().add(c, gbc);
- collapsibleEndFiller.put(m_tab, c);
- }
-
- /**
- * Add End (9) of Form
- */
- public void addEnd()
- {
- m_gbc.gridx = 0;
- m_gbc.gridy = m_line;
- m_gbc.gridwidth = 1;
- m_gbc.insets = m_zeroInset;
- m_gbc.fill = GridBagConstraints.HORIZONTAL;
- m_gbc.weightx = 0;
- //
- //[ 1757088 ]
- m_main.add(Box.createVerticalStrut(9), m_gbc);
- } // addEnd
-
/**
* Set Mnemonic for Label CTRL_SHIFT_x
* @param label label
@@ -822,7 +563,7 @@ public final class VPanel extends CTabbedPane
if (mnemonic == 0)
{
log.finest("None for: " + oText);
- return 0; // if first char would be returned, the first occurance is invalid.
+ return 0; // if first char would be returned, the first occurrence is invalid.
}
}
m_mnemonics.add(mnemonic);
@@ -840,7 +581,7 @@ public final class VPanel extends CTabbedPane
/**
* Set Window level Mnemonics
- * @param set true if set otherwise unregiser
+ * @param set true if set otherwise unregister
*/
public void setMnemonics (boolean set)
{
@@ -943,124 +684,6 @@ public final class VPanel extends CTabbedPane
return result;
}
- @Override
- public void doLayout() {
- //align labels
- int w = 0;
- Collection clabels = labels.get(0);
- for (CLabel l : clabels) {
- if (l.isVisible()) {
- int lw = l.getPreferredSize().width;
- if (lw > w) w = lw;
- }
- }
-
- for (CLabel l : clabels) {
- if (l.isVisible()) {
- Dimension d = l.getMinimumSize();
- if (d.width != w) {
- d.width = w;
- l.setMinimumSize(d);
- }
-
- }
- }
-
- clabels = fillers.get(0);
- for (CLabel l : clabels) {
- if (l.isVisible()) {
- Dimension d = l.getMinimumSize();
- if (d.width != w) {
- d.width = w;
- l.setMinimumSize(d);
- }
- }
- }
-
- w = 0;
- clabels = labels.get(2);
- for (CLabel l : clabels) {
- if (l.isVisible()) {
- int lw = l.getPreferredSize().width;
- if (lw > w) w = lw;
- }
- }
-
- for (CLabel l : clabels) {
- if (l.isVisible()) {
- Dimension d = l.getMinimumSize();
- if (d.width != w) {
- d.width = w;
- l.setMinimumSize(d);
- }
- }
- }
-
- clabels = fillers.get(2);
- for (CLabel l : clabels) {
- if (l.isVisible()) {
- Dimension d = l.getMinimumSize();
- if (d.width != w) {
- d.width = w;
- l.setMinimumSize(d);
- }
- }
- }
-
- //align fields
- w = 0;
- Collection collection = fields.get(1);
- for (Component c : collection) {
- if (c.isVisible()) {
- int cw = c.getPreferredSize().width;
- if ( cw > w )
- w = cw;
- }
- }
-
- for (Component c : collection) {
- if (c.isVisible()) {
- Dimension d = c.getMinimumSize();
- if ( d.width != w ) {
- d.width = w;
- c.setMinimumSize(d);
- }
- d = c.getPreferredSize();
- if (d.width != w) {
- d.width = w;
- c.setPreferredSize(d);
- }
- }
- }
-
- w = 0;
- collection = fields.get(3);
- for (Component c : collection) {
- if (c.isVisible()) {
- int cw = c.getPreferredSize().width;
- if ( cw > w )
- w = cw;
- }
- }
-
- for (Component c : collection) {
- if (c.isVisible()) {
- Dimension d = c.getMinimumSize();
- if ( d.width != w ) {
- d.width = w;
- c.setMinimumSize(d);
- }
- d = c.getPreferredSize();
- if (d.width != w) {
- d.width = w;
- c.setPreferredSize(d);
- }
- }
- }
-
- super.doLayout();
- }
-
/**
*
* @param detail
diff --git a/tools/build.xml b/tools/build.xml
index eba08a07e9..d6d73556f7 100644
--- a/tools/build.xml
+++ b/tools/build.xml
@@ -229,6 +229,9 @@
+
+
+
@@ -371,6 +374,9 @@
+
+
+