Browse Source

REPORT-55839 组件复用-禁用tab块的自定义图片边框入口,预期是只面向图表块与报表块

【问题原因】
使用LayoutStylePane的控件都启用了组件边框
【改动思路】
1. 新增控制参数supportBorderImage,控制样式面板中是否支持图片边框
2. supportBorderImage默认为false,不支持图片边框
3. 仅针对报表块和图表块,设置supportBorderImage为true,支持图片边框
final/10.0
Starryi 3 years ago
parent
commit
4fd14630e5
  1. 39
      designer-form/src/main/java/com/fr/design/gui/xpane/BorderLineAndImagePane.java
  2. 9
      designer-form/src/main/java/com/fr/design/gui/xpane/LayoutStylePane.java
  3. 2
      designer-form/src/main/java/com/fr/design/widget/ui/designer/layout/WTitleLayoutDefinePane.java

39
designer-form/src/main/java/com/fr/design/gui/xpane/BorderLineAndImagePane.java

@ -98,13 +98,13 @@ public class BorderLineAndImagePane extends JPanel implements UIObserver {
private int[] ninePoint = new int[] {-1, -1, -1, -1}; private int[] ninePoint = new int[] {-1, -1, -1, -1};
public BorderLineAndImagePane() { public BorderLineAndImagePane(boolean supportBorderImage) {
this.initComponents(); this.initComponents(supportBorderImage);
this.initLayout(); this.initLayout();
} }
private void initComponents() { private void initComponents(boolean supportBorderImage) {
borderLineCombo = new BorderLineAndImageComboBox(); borderLineCombo = new BorderLineAndImageComboBox(supportBorderImage);
borderColorPane = new NewColorSelectBox(145); borderColorPane = new NewColorSelectBox(145);
imagePreviewPane = new ImagePreviewPane() {{ imagePreviewPane = new ImagePreviewPane() {{
setImageStyle(Style.DEFAULT_STYLE); setImageStyle(Style.DEFAULT_STYLE);
@ -386,16 +386,25 @@ public class BorderLineAndImagePane extends JPanel implements UIObserver {
protected static class BorderLineAndImageComboBox extends LineComboBox { protected static class BorderLineAndImageComboBox extends LineComboBox {
public static final int LINE_PICTURE = -1; public static final int LINE_PICTURE = -1;
public final static int[] BORDER_LINE_STYLE_ARRAY = new int[] { public final static int[] BORDER_LINE_AND_IMAGE_STYLE_ARRAY = new int[] {
Constants.LINE_NONE, Constants.LINE_NONE,
LINE_PICTURE, LINE_PICTURE,
Constants.LINE_THIN, //1px Constants.LINE_THIN, //1px
Constants.LINE_MEDIUM, //2px Constants.LINE_MEDIUM, //2px
Constants.LINE_THICK, //3px Constants.LINE_THICK, //3px
}; };
public final static int[] BORDER_LINE_STYLE_ARRAY = new int[] {
Constants.LINE_NONE,
Constants.LINE_THIN, //1px
Constants.LINE_MEDIUM, //2px
Constants.LINE_THICK, //3px
};
private boolean supportBorderImage = false;
public BorderLineAndImageComboBox() { public BorderLineAndImageComboBox(boolean supportBorderImage) {
super(BORDER_LINE_STYLE_ARRAY); super(supportBorderImage ? BORDER_LINE_AND_IMAGE_STYLE_ARRAY : BORDER_LINE_STYLE_ARRAY);
this.supportBorderImage = supportBorderImage;
} }
@Override @Override
@ -407,17 +416,29 @@ public class BorderLineAndImagePane extends JPanel implements UIObserver {
} }
public boolean isSelectedBorderLine() { public boolean isSelectedBorderLine() {
return getSelectedIndex() > 1; Object object = getSelectedItem();
if (object != null) {
int value = (int) object;
return value > 0;
}
return false;
} }
public boolean isSelectedBorderImage() { public boolean isSelectedBorderImage() {
return getSelectedIndex() == 1; Object object = getSelectedItem();
if (object != null) {
int value = (int) object;
return value == LINE_PICTURE;
}
return false;
} }
public void selectBorderImage() { public void selectBorderImage() {
if (supportBorderImage) {
this.setSelectedIndex(1); this.setSelectedIndex(1);
} }
} }
}
private class NinePointImageTweakDialogPane extends BasicPane { private class NinePointImageTweakDialogPane extends BasicPane {
public final NinePointLinePreviewPane previewPane = new NinePointLinePreviewPane(); public final NinePointLinePreviewPane previewPane = new NinePointLinePreviewPane();

9
designer-form/src/main/java/com/fr/design/gui/xpane/LayoutStylePane.java

@ -88,7 +88,14 @@ public class LayoutStylePane extends BasicBeanPane<LayoutBorderStyle> {
//标题背景透明度 //标题背景透明度
protected UIPercentDragPane titleBackgroundOpacityPane; protected UIPercentDragPane titleBackgroundOpacityPane;
private boolean supportBorderImage = false;
public LayoutStylePane() { public LayoutStylePane() {
this(false);
}
public LayoutStylePane(boolean supportBorderImage) {
this.supportBorderImage = supportBorderImage;
this.initLayout(); this.initLayout();
} }
@ -130,7 +137,7 @@ public class LayoutStylePane extends BasicBeanPane<LayoutBorderStyle> {
protected JPanel createBackgroundStylePane() { protected JPanel createBackgroundStylePane() {
borderStyleCombo = new UIComboBox(BORDER_STYLE); borderStyleCombo = new UIComboBox(BORDER_STYLE);
borderLineAndImagePane = new BorderLineAndImagePane(); borderLineAndImagePane = new BorderLineAndImagePane(this.supportBorderImage);
cornerSpinner = new UISpinner(0,1000,1,0); cornerSpinner = new UISpinner(0,1000,1,0);
double p = TableLayout.PREFERRED; double p = TableLayout.PREFERRED;

2
designer-form/src/main/java/com/fr/design/widget/ui/designer/layout/WTitleLayoutDefinePane.java

@ -27,7 +27,7 @@ public abstract class WTitleLayoutDefinePane<T extends AbstractBorderStyleWidget
public void initComponent() { public void initComponent() {
this.setLayout(FRGUIPaneFactory.createBorderLayout()); this.setLayout(FRGUIPaneFactory.createBorderLayout());
JPanel advancePane = FRGUIPaneFactory.createBorderLayout_S_Pane(); JPanel advancePane = FRGUIPaneFactory.createBorderLayout_S_Pane();
stylePane = new LayoutStylePane(); stylePane = new LayoutStylePane(true);
advancePane.add(stylePane, BorderLayout.NORTH); advancePane.add(stylePane, BorderLayout.NORTH);
JPanel centerPane = createCenterPane(); JPanel centerPane = createCenterPane();
if(centerPane!=null){ if(centerPane!=null){

Loading…
Cancel
Save