You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
2.3 KiB
65 lines
2.3 KiB
/* |
|
* Copyright(c) 2001-2010, FineReport Inc, All Rights Reserved. |
|
*/ |
|
package com.fr.poly; |
|
|
|
import java.awt.Component; |
|
import java.awt.Container; |
|
import java.awt.Dimension; |
|
import java.awt.Insets; |
|
|
|
import com.fr.design.mainframe.RGridLayout; |
|
|
|
/** |
|
* @author richer |
|
* @since 6.5.4 创建于2011-4-8 |
|
*/ |
|
public class PolyEditorLayout extends RGridLayout { |
|
public static final String BottomCorner = "BottomCorner"; |
|
|
|
protected Component bottomCorner; |
|
|
|
@Override |
|
public void addLayoutComponent(String name, Component comp) { |
|
super.addLayoutComponent(name, comp); |
|
if (BottomCorner.equals(name)) { |
|
bottomCorner = comp; |
|
} |
|
} |
|
|
|
@Override |
|
public void layoutContainer(Container target) { |
|
synchronized (target.getTreeLock()) { |
|
Insets insets = target.getInsets(); |
|
int top = insets.top; |
|
int bottom = target.getHeight() - insets.bottom; |
|
int left = insets.left; |
|
int right = target.getWidth() - insets.right; |
|
|
|
Dimension gridRowPreferredSize = this.gridRow.getPreferredSize(); |
|
Dimension gridColumnPreferredSize = this.gridColumn.getPreferredSize(); |
|
|
|
int cornerWidth = gridRowPreferredSize.width; |
|
int cornerHeight = gridColumnPreferredSize.height; |
|
this.gridCorner.setBounds(left, top, cornerWidth, cornerHeight); |
|
|
|
int verticalWith = PolyConstants.OPERATION_SIZE; |
|
int horizontalHeight = PolyConstants.OPERATION_SIZE; |
|
|
|
this.verticalBar.setBounds(right - verticalWith, 0, verticalWith, cornerHeight); |
|
this.horizontalBar.setBounds(0, bottom - horizontalHeight, cornerWidth, horizontalHeight); |
|
|
|
this.gridColumn.setBounds(left + gridRowPreferredSize.width, top, right - gridRowPreferredSize.width - verticalWith, gridColumnPreferredSize.height); |
|
this.gridRow.setBounds(left, top + gridColumnPreferredSize.height, gridRowPreferredSize.width, bottom - gridColumnPreferredSize.height - horizontalHeight); |
|
|
|
int settingWidth = PolyConstants.OPERATION_SIZE * 2; |
|
int settingHeight = PolyConstants.OPERATION_SIZE * 2; |
|
if (this.bottomCorner != null) { |
|
this.bottomCorner.setBounds(right - settingWidth, bottom - settingHeight, settingWidth, settingHeight); |
|
} |
|
// Grid |
|
this.grid.setBounds(left + gridRowPreferredSize.width, top + gridColumnPreferredSize.height, right - gridRowPreferredSize.width - verticalWith, bottom - gridColumnPreferredSize.height |
|
- horizontalHeight); |
|
} |
|
} |
|
} |