diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardAddButton.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardAddButton.java index 6db9f953ae..96f533a023 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardAddButton.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardAddButton.java @@ -16,7 +16,6 @@ import com.fr.form.ui.CardSwitchButton; import com.fr.form.ui.container.cardlayout.WCardTagLayout; import com.fr.general.ComparatorUtils; import com.fr.general.Inter; -import com.fr.general.cardtag.DefaultTemplateStyle; import javax.swing.Icon; @@ -155,11 +154,6 @@ public class XCardAddButton extends XButton{ String cardLayoutName = cardLayout.toData().getWidgetName(); CardSwitchButton titleButton = new CardSwitchButton(index,cardLayoutName); WCardTagLayout layout = (WCardTagLayout) this.tagLayout.toData(); - - if(!ComparatorUtils.equals(layout.getTemplateStyle().getStyle(), DefaultTemplateStyle.DEFAULT_TEMPLATE_STYLE)){ - titleButton.setInitialBackground(layout.getTemplateStyle().getTabDefaultBackground()); - titleButton.setCustomStyle(true); - } //设置标题 titleButton.setText(getTabTitleName(layout)); XCardSwitchButton showButton = new XCardSwitchButton(titleButton, dimension, cardLayout, tagLayout); diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardSwitchButton.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardSwitchButton.java index 4de670ef60..d8fdbce92f 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardSwitchButton.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardSwitchButton.java @@ -324,8 +324,13 @@ public class XCardSwitchButton extends XButton { private void drawBackground(CardSwitchButton button, WidgetTitle widgetTitle){ Background background = widgetTitle.getBackground(); TemplateStyle templateStyle = ((WCardTagLayout) tagLayout.toData()).getTemplateStyle(); - Background initialBackground = button.getInitialBackground(); - Background selectBackground = button.getClickBackground(); + //获取当前tab的index + CardSwitchButton currentButton = (CardSwitchButton) this.toData(); + int index = currentButton.getIndex(); + XWTabFitLayout tabFitLayout = (XWTabFitLayout) cardLayout.getComponent(index); + WTabFitLayout wTabFitLayout = tabFitLayout.getWTabFitLayout(); + Background initialBackground = wTabFitLayout.getInitialBackground(); + Background selectBackground = wTabFitLayout.getClickBackground(); if (button.isShowButton()) { this.setContentBackground(selectBackground == null ? templateStyle.getSelectBackground() : selectBackground); } else { diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardLayout.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardLayout.java index b1c9863b4f..adc2031294 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardLayout.java @@ -31,8 +31,11 @@ import com.fr.form.ui.container.WLayout; import com.fr.form.ui.container.cardlayout.WCardMainBorderLayout; import com.fr.form.ui.container.cardlayout.WCardTagLayout; import com.fr.form.ui.container.cardlayout.WCardTitleLayout; +import com.fr.form.ui.container.cardlayout.WTabFitLayout; import com.fr.general.ComparatorUtils; import com.fr.general.Inter; +import com.fr.general.cardtag.DefaultTemplateStyle; +import com.fr.general.cardtag.TemplateStyle; import com.fr.stable.ArrayUtils; import com.fr.stable.Constants; import com.fr.stable.core.PropertyChangeAdapter; @@ -493,4 +496,17 @@ public class XWCardLayout extends XLayoutContainer { initStyle(); } + public void resetTabBackground(TemplateStyle templateStyle){ + for (int i = 0; i < this.getXCreatorCount(); i++) { + XWTabFitLayout xCreator = (XWTabFitLayout)this.getXCreator(i); + WTabFitLayout wTabFitLayout = (WTabFitLayout)xCreator.toData(); + boolean defaultStyle = ComparatorUtils.equals(templateStyle.getStyle(), DefaultTemplateStyle.DEFAULT_TEMPLATE_STYLE); + wTabFitLayout.setInitialBackground(defaultStyle ? null : templateStyle.getTabDefaultBackground()); + wTabFitLayout.setOverBackground(null); + wTabFitLayout.setClickBackground(null); + wTabFitLayout.setCustomStyle(!defaultStyle); + xCreator.checkButonType(); + } + } + } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardTagLayout.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardTagLayout.java index 9a648a47cb..0eef782ef2 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardTagLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardTagLayout.java @@ -30,6 +30,7 @@ import com.fr.form.ui.container.cardlayout.WCardTagLayout; import com.fr.form.ui.container.cardlayout.WTabFitLayout; import com.fr.general.ComparatorUtils; import com.fr.general.FRFont; +import com.fr.general.cardtag.DefaultTemplateStyle; import javax.swing.border.Border; import java.awt.*; @@ -132,7 +133,14 @@ public class XWCardTagLayout extends XWHorizontalBoxLayout { WTabFitLayout fitLayout = new WTabFitLayout(widgetName, tabFitIndex, currentCard); fitLayout.setTabNameIndex(getTabNameIndex()); XWTabFitLayout tabFitLayout = new XWTabFitLayout(fitLayout, new Dimension()); + WCardTagLayout layout = (WCardTagLayout) this.toData(); + + if(!ComparatorUtils.equals(layout.getTemplateStyle().getStyle(), DefaultTemplateStyle.DEFAULT_TEMPLATE_STYLE)){ + fitLayout.setInitialBackground(layout.getTemplateStyle().getTabDefaultBackground()); + fitLayout.setCustomStyle(true); + } tabFitLayout.setxCardSwitchButton((XCardSwitchButton)this.getComponent(0)); + tabFitLayout.checkButonType(); tabFitLayout.setBackupParent(cardLayout); cardLayout.add(tabFitLayout, widgetName); this.cardLayout.toData().setShowIndex(index); diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWTabFitLayout.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWTabFitLayout.java index 6a77c95de3..9e1938817c 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWTabFitLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWTabFitLayout.java @@ -102,6 +102,10 @@ public class XWTabFitLayout extends XWFitLayout { super(widget, initSize); } + public WTabFitLayout getWTabFitLayout(){ + return (WTabFitLayout)data; + } + @Override public UIPopupMenu createPopupMenu(FormDesigner formDesigner) { return UIPopupMenu.EMPTY; // 不要菜单 @@ -210,8 +214,12 @@ public class XWTabFitLayout extends XWFitLayout { return crPropertyDescriptors; } - private void checkButonType() { + public void checkButonType() { WTabFitLayout wTabFitLayout = ((WTabFitLayout) data); + XCardSwitchButton xCardSwitchButton = this.getxCardSwitchButton(); + if(xCardSwitchButton == null){ + initRelateSwitchButton(); + } CardSwitchButton cardSwitchButton = (CardSwitchButton) this.xCardSwitchButton.toData(); boolean isStyle = wTabFitLayout.isCustomStyle(); Background initialBackground = wTabFitLayout.getInitialBackground(); @@ -586,6 +594,7 @@ public class XWTabFitLayout extends XWFitLayout { @Override public void firePropertyChange(){ + checkButonType(); //根据字体长度设置tab宽度 setCardSwitchBtnSize(); XWCardLayout cardLayout = (XWCardLayout) this.getBackupParent(); diff --git a/designer_form/src/com/fr/design/widget/ui/designer/component/TabFitLayoutBackgroundPane.java b/designer_form/src/com/fr/design/widget/ui/designer/component/TabFitLayoutBackgroundPane.java index 7a079146a1..94194a232b 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/component/TabFitLayoutBackgroundPane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/component/TabFitLayoutBackgroundPane.java @@ -3,7 +3,6 @@ package com.fr.design.widget.ui.designer.component; import com.fr.design.gui.ilable.UILabel; import com.fr.design.mainframe.widget.accessibles.AccessibleTabBackgroundEditor; import com.fr.design.widget.component.BackgroundCompPane; -import com.fr.form.ui.CardSwitchButton; import com.fr.form.ui.container.cardlayout.WTabFitLayout; import com.fr.general.Background; import com.fr.general.Inter; @@ -29,33 +28,35 @@ public class TabFitLayoutBackgroundPane extends BackgroundCompPane public WCardTagLayout updateBean() { //标题背景和字体属性设置在WCardLayout上做兼容 XLayoutContainer topLayout = creator.getTopLayout(); - LayoutBorderStyle layoutBorderStyle = ((XWCardMainBorderLayout) topLayout).getCardPart().toData().getBorderStyle(); + XWCardLayout xCardLayout = ((XWCardMainBorderLayout) topLayout).getCardPart(); + LayoutBorderStyle layoutBorderStyle = xCardLayout.toData().getBorderStyle(); FRFont frFont = layoutBorderStyle.getTitle().getFrFont() == null ? FRFont.getInstance() : layoutBorderStyle.getTitle().getFrFont(); layoutBorderStyle.getTitle().setFrFont(frFontPane.update(frFont)); WCardTagLayout layout = (WCardTagLayout) creator.toData(); @@ -140,7 +140,7 @@ public class WCardTagLayoutDefinePane extends AbstractDataModify backgroundEditor.setValue(templateStyle.getDefaultBackground()); layoutBorderStyle.getTitle().setBackground(templateStyle.getDefaultBackground()); //重置内部tab的默认背景 - resetTabBackground(layout, templateStyle); + xCardLayout.resetTabBackground(templateStyle); layout.setTemplateStyle(templateStyle); } else { layoutBorderStyle.getTitle().setBackground((Background) backgroundEditor.getValue()); @@ -148,16 +148,4 @@ public class WCardTagLayoutDefinePane extends AbstractDataModify return layout; } - - private void resetTabBackground(WCardTagLayout layout, TemplateStyle templateStyle) { - for (int i = 0, len = layout.getWidgetCount(); i < len; i++) { - CardSwitchButton button = layout.getSwitchButton(i); - //兼容默认样式 - boolean defaultStyle = ComparatorUtils.equals(templateStyle.getStyle(), DefaultTemplateStyle.DEFAULT_TEMPLATE_STYLE); - button.setInitialBackground(defaultStyle ? null : templateStyle.getTabDefaultBackground()); - button.setOverBackground(null); - button.setClickBackground(null); - button.setCustomStyle(!defaultStyle); - } - } } diff --git a/designer_form/src/com/fr/design/widget/ui/designer/layout/WTabFitLayoutDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/layout/WTabFitLayoutDefinePane.java index 3582ca1a26..46906925f0 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/layout/WTabFitLayoutDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/layout/WTabFitLayoutDefinePane.java @@ -83,7 +83,7 @@ public class WTabFitLayoutDefinePane extends AbstractDataModify { if(ob.getCurrentCard() == null){ ob.setCurrentCard(getRelateSwitchButton(ob)); } - borderStyle.populate(ob.getCurrentCard()); + borderStyle.populate(ob); titleField.setText(ob.getCurrentCard().getText()); } @@ -118,7 +118,7 @@ public class WTabFitLayoutDefinePane extends AbstractDataModify { @Override public WTabFitLayout updateBean() { WTabFitLayout layout = (WTabFitLayout) creator.toData(); - borderStyle.update(layout.getCurrentCard()); + borderStyle.update(layout); if (ComparatorUtils.equals(getGlobalName(), Inter.getLocText("FR-Designer_Layout-Padding"))) { paddingBoundPane.update(layout); }