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
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); |
|
} |
|
|
|
} |