[ 1855851 ] Propose New Look for Collapseable Field Group
- Fixed included grid layout. - Fixed some included grid bug, some limited testing using sales order and sales order line.
This commit is contained in:
parent
e810b5146c
commit
301ecfee7f
|
@ -56,29 +56,41 @@ import org.compiere.util.*;
|
||||||
public final class APanel extends CPanel
|
public final class APanel extends CPanel
|
||||||
implements DataStatusListener, ChangeListener, ActionListener, ASyncProcess
|
implements DataStatusListener, ChangeListener, ActionListener, ASyncProcess
|
||||||
{
|
{
|
||||||
|
private boolean isNested = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructs a new instance.
|
* Constructs a new instance.
|
||||||
* Need to call initPanel for dynamic initialization
|
* Need to call initPanel for dynamic initialization
|
||||||
*/
|
*/
|
||||||
//FR [ 1757088 ]
|
//FR [ 1757088 ]
|
||||||
public APanel(GridController gc){
|
public APanel(GridController gc, int windowNo){
|
||||||
super();
|
super();
|
||||||
|
isNested = true;
|
||||||
m_ctx = Env.getCtx();
|
m_ctx = Env.getCtx();
|
||||||
try{
|
try{
|
||||||
m_curGC = gc;
|
m_curGC = gc;
|
||||||
|
gc.addDataStatusListener(this);
|
||||||
m_curTab = gc.getMTab();
|
m_curTab = gc.getMTab();
|
||||||
|
|
||||||
Component tabElement = null;
|
Component tabElement = null;
|
||||||
tabElement = gc;
|
tabElement = gc;
|
||||||
VTabbedPane tabPane = new VTabbedPane(false);
|
VTabbedPane tabPane = new VTabbedPane(false);
|
||||||
tabPane.addTab(m_curTab.getName().toString(), m_curTab, tabElement);
|
tabPane.addTab(m_curTab.getName().toString(), m_curTab, tabElement);
|
||||||
m_curWinTab = tabPane;
|
m_curWinTab = tabPane;
|
||||||
|
m_curWindowNo = windowNo;
|
||||||
jbInit();
|
jbInit();
|
||||||
initSwitchLineAction();
|
initSwitchLineAction();
|
||||||
}
|
}
|
||||||
catch(Exception e){
|
catch(Exception e){
|
||||||
log.log(Level.SEVERE, "", e);
|
log.log(Level.SEVERE, "", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
createMenu();
|
createMenu();
|
||||||
|
|
||||||
|
MRole role = MRole.getDefault();
|
||||||
|
m_curGC.query (m_onlyCurrentRows, m_onlyCurrentDays, role.getMaxQueryRecords());
|
||||||
|
m_curTab.navigateCurrent(); // updates counter
|
||||||
|
m_curGC.dynamicDisplay(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public APanel(AWindow window)
|
public APanel(AWindow window)
|
||||||
|
@ -445,7 +457,7 @@ public final class APanel extends CPanel
|
||||||
*/
|
*/
|
||||||
public String getTitle()
|
public String getTitle()
|
||||||
{
|
{
|
||||||
if (m_mWorkbench.getWindowCount() > 1)
|
if (m_mWorkbench != null && m_mWorkbench.getWindowCount() > 1)
|
||||||
{
|
{
|
||||||
StringBuffer sb = new StringBuffer();
|
StringBuffer sb = new StringBuffer();
|
||||||
sb.append(m_mWorkbench.getName()).append(" ")
|
sb.append(m_mWorkbench.getName()).append(" ")
|
||||||
|
@ -669,11 +681,11 @@ public final class APanel extends CPanel
|
||||||
int m_tab_id = 0;
|
int m_tab_id = 0;
|
||||||
for(int f =0 ; f < fields.length ; f ++)
|
for(int f =0 ; f < fields.length ; f ++)
|
||||||
{
|
{
|
||||||
m_tab_id = fields[f].getIncluded_Tab_ID();
|
m_tab_id = fields[f].getIncluded_Tab_ID();
|
||||||
if ( m_tab_id != 0)
|
if ( m_tab_id != 0)
|
||||||
{
|
{
|
||||||
includedMap.put(m_tab_id, gc);
|
includedMap.put(m_tab_id, gc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Is this tab included?
|
// Is this tab included?
|
||||||
|
@ -683,22 +695,25 @@ public final class APanel extends CPanel
|
||||||
if (parent != null)
|
if (parent != null)
|
||||||
{
|
{
|
||||||
// FR [ 1757088 ]
|
// FR [ 1757088 ]
|
||||||
gc.initGrid(gTab, false, m_curWindowNo, this, mWindow, false); // will set color on Tab level
|
gc.removeDataStatusListener(this);
|
||||||
|
//gc.initGrid(gTab, false, m_curWindowNo, this, mWindow, false); // will set color on Tab level
|
||||||
|
m_mWorkbench.getMWindow(0).initTab(tab);
|
||||||
|
gc.activate();
|
||||||
included = parent.includeTab(gc,this);
|
included = parent.includeTab(gc,this);
|
||||||
TabSwitcher ts = new TabSwitcher(parent, this);
|
TabSwitcher ts = new TabSwitcher(parent, this);
|
||||||
Component[] comp = parent.getvPanel().getComponentsRecursive();
|
Component[] comp = parent.getvPanel().getComponentsRecursive();
|
||||||
for (int i = 0; i < comp.length; i++)
|
for (int i = 0; i < comp.length; i++)
|
||||||
{
|
{
|
||||||
ts.addTabSwitchingSupport((JComponent)comp[i]);
|
ts.addTabSwitchingSupport((JComponent)comp[i]);
|
||||||
}
|
}
|
||||||
ts = new TabSwitcher(gc, this);
|
ts = new TabSwitcher(gc, this);
|
||||||
comp = gc.getvPanel().getComponentsRecursive();
|
comp = gc.getvPanel().getComponentsRecursive();
|
||||||
for (int i = 0; i < comp.length; i++)
|
for (int i = 0; i < comp.length; i++)
|
||||||
{
|
{
|
||||||
ts.addTabSwitchingSupport((JComponent)comp[i]);
|
ts.addTabSwitchingSupport((JComponent)comp[i]);
|
||||||
}
|
}
|
||||||
ts = new TabSwitcher(gc, this);
|
ts = new TabSwitcher(gc, this);
|
||||||
ts.addTabSwitchingSupport((JComponent)gc.getTable());
|
ts.addTabSwitchingSupport((JComponent)gc.getTable());
|
||||||
|
|
||||||
if (!included)
|
if (!included)
|
||||||
log.log(Level.SEVERE, "Not Included = " + gc);
|
log.log(Level.SEVERE, "Not Included = " + gc);
|
||||||
|
@ -881,7 +896,8 @@ public final class APanel extends CPanel
|
||||||
if (m_curTab != null && m_curTab.isQueryActive())
|
if (m_curTab != null && m_curTab.isQueryActive())
|
||||||
dbInfo = "[ " + dbInfo + " ]";
|
dbInfo = "[ " + dbInfo + " ]";
|
||||||
statusBar.setStatusDB(dbInfo, e);
|
statusBar.setStatusDB(dbInfo, e);
|
||||||
m_window.setTitle(getTitle());
|
if (!isNested)
|
||||||
|
m_window.setTitle(getTitle());
|
||||||
|
|
||||||
// Set Message / Info
|
// Set Message / Info
|
||||||
if (e.getAD_Message() != null || e.getInfo() != null)
|
if (e.getAD_Message() != null || e.getInfo() != null)
|
||||||
|
@ -1695,7 +1711,8 @@ public final class APanel extends CPanel
|
||||||
m_curGC.rowChanged(true, m_curTab.getRecord_ID());
|
m_curGC.rowChanged(true, m_curTab.getRecord_ID());
|
||||||
if (manualCmd) {
|
if (manualCmd) {
|
||||||
m_curGC.dynamicDisplay(0);
|
m_curGC.dynamicDisplay(0);
|
||||||
m_window.setTitle(getTitle());
|
if (!isNested)
|
||||||
|
m_window.setTitle(getTitle());
|
||||||
}
|
}
|
||||||
return retValue;
|
return retValue;
|
||||||
} // cmd_save
|
} // cmd_save
|
||||||
|
@ -2507,4 +2524,8 @@ public final class APanel extends CPanel
|
||||||
setBusy(false,true);
|
setBusy(false,true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isNested() {
|
||||||
|
return isNested;
|
||||||
|
}
|
||||||
|
|
||||||
} // APanel
|
} // APanel
|
||||||
|
|
|
@ -436,6 +436,7 @@ public class GridController extends CPanel
|
||||||
int screenWidth = (int) Toolkit.getDefaultToolkit().getScreenSize().getWidth() - 630;
|
int screenWidth = (int) Toolkit.getDefaultToolkit().getScreenSize().getWidth() - 630;
|
||||||
// Set screen dimension
|
// Set screen dimension
|
||||||
detail.setPreferredSize(new Dimension(screenWidth, 250));
|
detail.setPreferredSize(new Dimension(screenWidth, 250));
|
||||||
|
/*
|
||||||
ArrayList parents = detail.getMTab().getParentColumnNames();
|
ArrayList parents = detail.getMTab().getParentColumnNames();
|
||||||
// No Parent - no link
|
// No Parent - no link
|
||||||
if (parents.size() == 0)
|
if (parents.size() == 0)
|
||||||
|
@ -443,16 +444,16 @@ public class GridController extends CPanel
|
||||||
// Standard case
|
// Standard case
|
||||||
else if (parents.size() == 1)
|
else if (parents.size() == 1)
|
||||||
detail.getMTab().setLinkColumnName((String)parents.get(0));
|
detail.getMTab().setLinkColumnName((String)parents.get(0));
|
||||||
detail.getMTab().query(false, 0, 0);
|
detail.getMTab().query(false, 0, 0);*/
|
||||||
int c = VTable.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT;
|
int c = VTable.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT;
|
||||||
vTable.getInputMap(c).put(KeyStroke.getKeyStroke(KeyEvent.VK_F4, 0), aPanel.aSave.getName());
|
vTable.getInputMap(c).put(KeyStroke.getKeyStroke(KeyEvent.VK_F4, 0), aPanel.aSave.getName());
|
||||||
vTable.getActionMap().put(aPanel.aSave.getName(), aPanel.aSave);
|
vTable.getActionMap().put(aPanel.aSave.getName(), aPanel.aSave);
|
||||||
CollapsiblePanel section = vPanel.getIncludedSection(detail.getMTab().getAD_Tab_ID());
|
CollapsiblePanel section = vPanel.getIncludedSection(detail.getMTab().getAD_Tab_ID());
|
||||||
gc.isDetailGrid(true);
|
gc.setDetailGrid(true);
|
||||||
|
|
||||||
if(section != null)
|
if(section != null)
|
||||||
{
|
{
|
||||||
APanel panel = new APanel(gc);
|
APanel panel = new APanel(gc, m_WindowNo);
|
||||||
String name = detail.getMTab().getName() + "";
|
String name = detail.getMTab().getName() + "";
|
||||||
section.setTitle(name);
|
section.setTitle(name);
|
||||||
panel.add(detail);
|
panel.add(detail);
|
||||||
|
@ -481,11 +482,12 @@ public class GridController extends CPanel
|
||||||
|
|
||||||
detail.addMouseListener(detail);
|
detail.addMouseListener(detail);
|
||||||
detail.enableEvents(AWTEvent.HIERARCHY_EVENT_MASK + AWTEvent.MOUSE_EVENT_MASK);
|
detail.enableEvents(AWTEvent.HIERARCHY_EVENT_MASK + AWTEvent.MOUSE_EVENT_MASK);
|
||||||
|
detail.activate();
|
||||||
return true;
|
return true;
|
||||||
} // IncludeTab
|
} // IncludeTab
|
||||||
|
|
||||||
//FR [ 1757088 ]
|
//FR [ 1757088 ]
|
||||||
public void isDetailGrid(boolean value){
|
public void setDetailGrid(boolean value){
|
||||||
detailGrid = value;
|
detailGrid = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -185,17 +185,16 @@ public final class VPanel extends CTabbedPane
|
||||||
{
|
{
|
||||||
m_gbc.gridx = 0;
|
m_gbc.gridx = 0;
|
||||||
m_gbc.gridy = m_line++;
|
m_gbc.gridy = m_line++;
|
||||||
m_gbc.gridwidth = 4;
|
|
||||||
CollapsiblePanel m_tab = new CollapsiblePanel("");
|
CollapsiblePanel m_tab = new CollapsiblePanel("");
|
||||||
m_tabincludelist.put(AD_Tab_ID, m_tab);
|
m_tabincludelist.put(AD_Tab_ID, m_tab);
|
||||||
m_gbc.anchor = GridBagConstraints.NORTHWEST;
|
m_gbc.anchor = GridBagConstraints.NORTHWEST;
|
||||||
m_gbc.gridx = 0;
|
m_gbc.gridx = 0;
|
||||||
m_gbc.gridheight = 1;
|
m_gbc.gridheight = 1;
|
||||||
m_gbc.insets = new Insets(2,12,0,0);
|
m_gbc.insets = new Insets(2,0,0,0);
|
||||||
m_gbc.gridy = m_line++;
|
m_gbc.gridy = m_line++;
|
||||||
m_gbc.gridwidth = 4;
|
m_gbc.gridwidth = 4;
|
||||||
m_gbc.fill = GridBagConstraints.HORIZONTAL;
|
m_gbc.fill = GridBagConstraints.HORIZONTAL;
|
||||||
m_gbc.weightx = 0;
|
m_gbc.weightx = 1;
|
||||||
m_gbc.ipadx = 0;
|
m_gbc.ipadx = 0;
|
||||||
m_main.add(m_tab,m_gbc);
|
m_main.add(m_tab,m_gbc);
|
||||||
return;
|
return;
|
||||||
|
@ -345,7 +344,6 @@ public final class VPanel extends CTabbedPane
|
||||||
// First time - add top
|
// First time - add top
|
||||||
if (m_oldFieldGroup == null)
|
if (m_oldFieldGroup == null)
|
||||||
{
|
{
|
||||||
addTop();
|
|
||||||
m_oldFieldGroup = "";
|
m_oldFieldGroup = "";
|
||||||
m_oldFieldGroupType = "";
|
m_oldFieldGroupType = "";
|
||||||
}
|
}
|
||||||
|
@ -458,13 +456,6 @@ public final class VPanel extends CTabbedPane
|
||||||
fields.get(3).add(label);
|
fields.get(3).add(label);
|
||||||
m_tab.add(label, gbc);
|
m_tab.add(label, gbc);
|
||||||
|
|
||||||
//Right gap
|
|
||||||
gbc.gridx = 4; // 5th column
|
|
||||||
gbc.gridwidth = 1;
|
|
||||||
gbc.weightx = 1;
|
|
||||||
gbc.insets = m_zeroInset;
|
|
||||||
gbc.fill = GridBagConstraints.HORIZONTAL;
|
|
||||||
m_tab.add(Box.createHorizontalStrut(1), gbc);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -521,21 +512,6 @@ public final class VPanel extends CTabbedPane
|
||||||
collapsibleEndFiller.put(m_tab, c);
|
collapsibleEndFiller.put(m_tab, c);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Add right gap
|
|
||||||
*/
|
|
||||||
private void addTop()
|
|
||||||
{
|
|
||||||
m_gbc.gridy = m_line++;
|
|
||||||
// Right gap
|
|
||||||
m_gbc.gridx = 4; // 5th column
|
|
||||||
m_gbc.gridwidth = 1;
|
|
||||||
m_gbc.weightx = 1;
|
|
||||||
m_gbc.insets = m_zeroInset;
|
|
||||||
m_gbc.fill = GridBagConstraints.HORIZONTAL;
|
|
||||||
m_main.add(Box.createHorizontalStrut(1), m_gbc);
|
|
||||||
} // addTop
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add End (9) of Form
|
* Add End (9) of Form
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue