帆软报表设计器源代码。
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.
 
 
 
 

125 lines
4.7 KiB

package com.fr.plugin.chart.designer;
import com.fr.design.constants.LayoutConstants;
import com.fr.design.foldablepane.UIExpandablePane;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.general.Inter;
import javax.swing.*;
import java.awt.*;
/**
* 布局 标题+组件
*/
public class TableLayout4VanChartHelper {
private static final int SMALL_GAP = 20;
public static final int EXPANDABLE_PANE_WIDTH =290;
public static final int EXPANDABLE_PANE_HIGHT =24;
public static final double DESCRIPTION_AREA_WIDTH =60;
public static final double EDIT_AREA_WIDTH =155;
public static final double SECOND_EDIT_AREA_WIDTH =143;
public static final int COMPONENT_INTERVAL =12;
public static JPanel createExpandablePaneWithTitle(String title, JPanel panel) {
return new UIExpandablePane(title, EXPANDABLE_PANE_WIDTH, EXPANDABLE_PANE_HIGHT, panel){
protected void setcontentPanelontentPanelBorder (){
getContentPanel().setBorder(BorderFactory.createEmptyBorder(0 ,5, 0, 0));
}
};
}
public static JPanel createGapTableLayoutPane(String title, Component component) {
return createGapTableLayoutPane(title, component, EDIT_AREA_WIDTH);
}
public static JPanel createGapTableLayoutPane(String title, Component component, double componentWidth) {
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[] columnSize = {f, componentWidth};
double[] rowSize = {p, p};
Component[][] components = new Component[][]{
new Component[]{null, null},
new Component[]{new UILabel(Inter.getLocText(title)), component},
};
return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, COMPONENT_INTERVAL, LayoutConstants.VGAP_LARGE);
}
public static JPanel createGapTableLayoutPane(Component[][] components,
double[] rowSize, double[] columnSize) {
return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, COMPONENT_INTERVAL, LayoutConstants.VGAP_LARGE);
}
public static JPanel createGapTableLayoutPane(Component[][] components,
double[] rowSize, double[] columnSize, int[][] rowCount) {
return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount,
COMPONENT_INTERVAL, LayoutConstants.VGAP_LARGE);
}
/**
* 标题布局(二级菜单距左边框46)
* @param title 标题
* @param component 组件
* @return 布局好的组件
*/
public static JPanel createTableLayoutPaneWithTitle(String title, Component component){
return TableLayout4VanChartHelper.createTitlePane(title, component, LayoutConstants.CHART_ATTR_TOMARGIN);
}
/**
* 标题布局(二级菜单距左边框46)
* @param label 标题label
* @param component 组件
* @return 布局好的组件
*/
public static JPanel createTableLayoutPaneWithUILabel(UILabel label, Component component){
return TableLayout4VanChartHelper.createTitlePaneWithUILabel(label, component, LayoutConstants.CHART_ATTR_TOMARGIN);
}
/**
* 标题布局(三级菜单距二级左侧20)
* @param title 标题
* @param component 组件
* @return 布局好的组件
*/
public static JPanel createTableLayoutPaneWithSmallTitle(String title, Component component){
return TableLayout4VanChartHelper.createTitlePane(title, component, TableLayout4VanChartHelper.SMALL_GAP);
}
/**
* 标题布局(指定gap)
* @param title 标题
* @param component 组件
* @param gap 距左侧距离
* @return 布局好的组件
*/
public static JPanel createTitlePane(String title, Component component, int gap){
return createTitlePaneWithUILabel(new UILabel(title), component, gap);
}
/**
* 标题布局(指定gap)
* @param label 标题label
* @param component 组件
* @param gap 距左侧距离
* @return 布局好的组件
*/
public static JPanel createTitlePaneWithUILabel(UILabel label, Component component, int gap){
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[] columnSize = {gap, f};
double[] rowSize = {p, p};
Component[][] components = new Component[][]{
new Component[]{label,null},
new Component[]{null,component},
};
return TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize);
}
}