* [ 1876642 ] Add Collapsed by Default to Field Group

* [ 1876642 ] Add Collapsed by Default to Field Group
* minor changes in border.
This commit is contained in:
Heng Sin Low 2008-01-30 04:40:39 +00:00
parent beb845225d
commit 38ba58c4eb
3 changed files with 76 additions and 8 deletions

View File

@ -86,7 +86,7 @@ public class StatusBar extends CPanel
statusDB.addMouseListener(new StatusBar_mouseAdapter(this));
this.setLayout(mainLayout);
infoLine.setFont(AdempierePLAF.getFont_Label());
infoLine.setBorder(BorderFactory.createRaisedBevelBorder());
infoLine.setBorder(BorderFactory.createLineBorder(AdempierePLAF.getSecondary2()));
infoLine.setHorizontalAlignment(SwingConstants.CENTER);
infoLine.setHorizontalTextPosition(SwingConstants.CENTER);
infoLine.setText("info");

View File

@ -28,6 +28,7 @@ import javax.swing.event.*;
import javax.swing.table.*;
import org.adempiere.plaf.AdempiereLookAndFeel;
import org.adempiere.plaf.AdempierePLAF;
import org.compiere.apps.*;
import org.compiere.grid.ed.*;
import org.compiere.grid.tree.*;
@ -311,6 +312,10 @@ public class GridController extends CPanel
//FR [ 1757088 ]
vPanel = new VPanel(mTab.getName(), m_WindowNo);
vPanel.putClientProperty(AdempiereLookAndFeel.HIDE_IF_ONE_TAB, Boolean.TRUE);
if (this.isDetailGrid())
{
vPanel.setBorder(BorderFactory.createLineBorder(AdempierePLAF.getPrimary2()));
}
vPane.getViewport().add(xPanel, null);
xPanel.add(vPanel, BorderLayout.CENTER);
@ -463,6 +468,8 @@ public class GridController extends CPanel
//FR [ 1757088 ]
public void setDetailGrid(boolean value){
detailGrid = value;
if (detailGrid && vPanel != null)
vPanel.setBorder(BorderFactory.createLineBorder(AdempierePLAF.getPrimary2()));
}
public boolean isDetailGrid(){
@ -907,13 +914,15 @@ public class GridController extends CPanel
boolean noData = m_mTab.getRowCount() == 0;
log.config(m_mTab.toString() + " - Rows=" + m_mTab.getRowCount());
// All Components in vPanel (Single Row)
Set hiddens = new HashSet<String>();
Component[] comps = vPanel.getComponentsRecursive();
for (int i = 0; i < comps.length; i++)
{
Component comp = comps[i];
String columnName = comp.getName();
if (columnName != null)
if (columnName != null && columnName.length() > 0)
{
GridField mField = m_mTab.getField(columnName);
if (mField != null)
@ -952,12 +961,63 @@ public class GridController extends CPanel
}
}
}
else if (comp.isVisible())
comp.setVisible(false);
else
{
if (comp.isVisible())
comp.setVisible(false);
hiddens.add(columnName);
}
}
}
} // all components
log.config(m_mTab.toString() + " - fini - " + (col<=0 ? "complete" : "seletive"));
// hide empty field group based on the environment
Map<String, CollapsiblePanel> hiddensPanel = new HashMap<String, CollapsiblePanel>();
Set<CollapsiblePanel> visiblePanel = new HashSet<CollapsiblePanel>();
for (int i = 0; i < comps.length; i++) {
Component comp = comps[i];
if (comp instanceof CollapsiblePanel)
{
if (comp.getName() != null && !comp.getName().startsWith("IncludedTab#"))
hiddensPanel.put(comp.getName(), (CollapsiblePanel)comp);
}
else
{
String columnName = comp.getName();
if (columnName != null && columnName.length() > 0) {
GridField mField = m_mTab.getField(columnName);
if (mField != null)
{
String fieldGroup = mField.getFieldGroup();
if (fieldGroup != null && fieldGroup.length() > 0)
{
if (hiddensPanel.containsKey(fieldGroup) && !hiddens.contains(columnName))
{
visiblePanel.add((CollapsiblePanel)hiddensPanel.remove(fieldGroup));
}
}
}
}
}
}
for (CollapsiblePanel panel : hiddensPanel.values())
{
if (panel.isVisible())
panel.setVisible(false);
}
for (CollapsiblePanel panel : visiblePanel)
{
if (!panel.isVisible())
panel.setVisible(true);
}
//
log.config(m_mTab.toString() + " - fini - "
+ (col <= 0 ? "complete" : "seletive"));
} // dynamicDisplay
/**

View File

@ -211,6 +211,7 @@ public final class VPanel extends CTabbedPane
m_gbc.weightx = 1;
m_gbc.ipadx = 0;
m_main.add(m_tab,m_gbc);
m_tab.setName("IncludedTab#"+AD_Tab_ID);
if (includedTabList.containsKey(AD_Tab_ID))
{
@ -234,7 +235,14 @@ public final class VPanel extends CTabbedPane
}
if (addGroup(fieldGroup, fieldGroupType)) // sets top
{
if (X_AD_FieldGroup.FIELDGROUPTYPE_Collapse.equals(fieldGroupType))
{
CollapsiblePanel panel = (CollapsiblePanel) m_tablist.get(fieldGroup);
panel.getCollapsiblePane().setCollapsed(mField.getIsCollapsedByDefault());
}
sameLine = false;
}
else
{
fieldGroup = m_oldFieldGroup;
@ -402,7 +410,7 @@ public final class VPanel extends CTabbedPane
setupCollapsiblePaneLayout(m_tab);
CompoundBorder border = (CompoundBorder)m_tab.getBorder();
m_tab.setBorder(new CompoundBorder(border.getOutsideBorder(), BorderFactory.createEmptyBorder(0, 0, 2, 0)));
m_tab.setName(fieldGroup);
collapsibleSection.setName(fieldGroup);
m_gbc.anchor = GridBagConstraints.NORTHWEST;
//m_gbc.gridy = 0; // line
m_gbc.gridx = 0;