diff --git a/designer_base/src/com/fr/design/gui/icontainer/UIResizableContainer.java b/designer_base/src/com/fr/design/gui/icontainer/UIResizableContainer.java index 22d1bb521b..9fa791b776 100644 --- a/designer_base/src/com/fr/design/gui/icontainer/UIResizableContainer.java +++ b/designer_base/src/com/fr/design/gui/icontainer/UIResizableContainer.java @@ -3,6 +3,7 @@ package com.fr.design.gui.icontainer; import com.fr.base.BaseUtils; import com.fr.design.constants.UIConstants; import com.fr.design.mainframe.DesignerContext; +import com.fr.design.mainframe.EastRegionContainerPane; import com.fr.stable.Constants; import com.fr.design.utils.gui.GUICoreUtils; @@ -21,6 +22,7 @@ public class UIResizableContainer extends JPanel { private JComponent upPane; private JComponent downPane; + private JComponent parameterPane = new JPanel(); private HorizotalToolPane horizontToolPane; private VerticalToolPane verticalToolPane; @@ -37,6 +39,7 @@ public class UIResizableContainer extends JPanel { private boolean isLeftRightDragEnabled = true; private boolean isDownPaneVisible = true ; + private int paraHeight; public UIResizableContainer(int direction) { this(new JPanel(), new JPanel(), direction); @@ -85,7 +88,10 @@ public class UIResizableContainer extends JPanel { add(horizontToolPane); add(downPane); add(verticalToolPane); + parameterPane.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); + add(parameterPane); } + public UIResizableContainer(JComponent upPane, int direction) { setBackground(UIConstants.NORMAL_BACKGROUND); @@ -96,6 +102,7 @@ public class UIResizableContainer extends JPanel { setLayout(containerLayout); add(upPane); add(horizontToolPane); + add(parameterPane); } @@ -119,6 +126,20 @@ public class UIResizableContainer extends JPanel { } } + public int getParameterPaneHeight() { + if(parameterPane.getHeight() == 0) { + return 30; + } + return paraHeight; + + } + + public void setParameterHeight(int height) { + paraHeight = height; + refreshContainer(); + + } + /** * 得到上下子面板的高度 * @@ -183,20 +204,21 @@ public class UIResizableContainer extends JPanel { if(isDownPaneVisible){ upPane.setBounds(0, 0, containerWidth - toolPaneHeight, toolPaneY); horizontToolPane.setBounds(0, toolPaneY, containerWidth - toolPaneHeight, toolPaneHeight); - downPane.setBounds(0, toolPaneY + toolPaneHeight, containerWidth - toolPaneHeight, parent.getHeight() - toolPaneY - toolPaneHeight); + downPane.setBounds(0, toolPaneY + toolPaneHeight, containerWidth - toolPaneHeight, parent.getHeight() - toolPaneY - toolPaneHeight-30); verticalToolPane.setBounds(containerWidth - toolPaneHeight, 0, toolPaneHeight, getHeight()); }else{ upPane.setBounds(0, 0, containerWidth - toolPaneHeight, getHeight()); verticalToolPane.setBounds(containerWidth - toolPaneHeight, 0, toolPaneHeight, getHeight()); } - } else if (direction == Constants.LEFT) { + } else if (direction == Constants.LEFT && parent instanceof EastRegionContainerPane) { if(isDownPaneVisible){ if (toolPaneY > getHeight() - toolPaneHeight) { toolPaneY = getHeight() - toolPaneHeight; } - upPane.setBounds(toolPaneHeight, 0, containerWidth - toolPaneHeight, toolPaneY); - horizontToolPane.setBounds(toolPaneHeight, toolPaneY, containerWidth - toolPaneHeight, toolPaneHeight); - downPane.setBounds(toolPaneHeight, toolPaneY + toolPaneHeight, containerWidth - toolPaneHeight, parent.getHeight() - toolPaneY - toolPaneHeight); + parameterPane.setBounds(20,0,230,getParameterPaneHeight()); + upPane.setBounds(toolPaneHeight, getParameterPaneHeight(), containerWidth - toolPaneHeight, toolPaneY); + horizontToolPane.setBounds(toolPaneHeight, toolPaneY + getParameterPaneHeight(), containerWidth - toolPaneHeight, toolPaneHeight); + downPane.setBounds(toolPaneHeight, toolPaneY + toolPaneHeight + getParameterPaneHeight(), containerWidth - toolPaneHeight, parent.getHeight() - toolPaneY - toolPaneHeight - getParameterPaneHeight()); verticalToolPane.setBounds(0, 0, toolPaneHeight, getHeight()); }else{ upPane.setBounds(toolPaneHeight, 0, containerWidth - toolPaneHeight, getHeight()); @@ -244,6 +266,16 @@ public class UIResizableContainer extends JPanel { refreshContainer(); } + public void addParameterPane(JComponent pane) { + add(this.parameterPane = pane); + refreshContainer(); + } + + public void removeParameterPane() { + remove(this.parameterPane); + refreshContainer(); + } + /** * 得到上子面板 * @@ -483,7 +515,7 @@ public class UIResizableContainer extends JPanel { jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel content = (JPanel) jf.getContentPane(); content.setLayout(new BorderLayout()); - UIResizableContainer bb = new UIResizableContainer(Constants.LEFT); + UIResizableContainer bb = new UIResizableContainer(Constants.RIGHT); JPanel cc = new JPanel(); cc.setBackground(Color.blue); content.add(bb, BorderLayout.EAST);