Browse Source

Merge pull request #1639 in BA/design from ~KERRY/design:release/9.0 to release/9.0

* commit '8ac3017353d2fa4b5ec3722311860f9770b6d0b9':
  REPORT-6883  (这边取的是fitlayout不是对应的button上的背景,兼容性不好处理)
superman 7 years ago
parent
commit
53aecf783a
  1. 6
      designer_form/src/com/fr/design/designer/creator/cardlayout/XCardAddButton.java
  2. 9
      designer_form/src/com/fr/design/designer/creator/cardlayout/XCardSwitchButton.java
  3. 16
      designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardLayout.java
  4. 8
      designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardTagLayout.java
  5. 11
      designer_form/src/com/fr/design/designer/creator/cardlayout/XWTabFitLayout.java
  6. 31
      designer_form/src/com/fr/design/widget/ui/designer/component/TabFitLayoutBackgroundPane.java
  7. 20
      designer_form/src/com/fr/design/widget/ui/designer/layout/WCardTagLayoutDefinePane.java
  8. 4
      designer_form/src/com/fr/design/widget/ui/designer/layout/WTabFitLayoutDefinePane.java

6
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.form.ui.container.cardlayout.WCardTagLayout;
import com.fr.general.ComparatorUtils; import com.fr.general.ComparatorUtils;
import com.fr.general.Inter; import com.fr.general.Inter;
import com.fr.general.cardtag.DefaultTemplateStyle;
import javax.swing.Icon; import javax.swing.Icon;
@ -155,11 +154,6 @@ public class XCardAddButton extends XButton{
String cardLayoutName = cardLayout.toData().getWidgetName(); String cardLayoutName = cardLayout.toData().getWidgetName();
CardSwitchButton titleButton = new CardSwitchButton(index,cardLayoutName); CardSwitchButton titleButton = new CardSwitchButton(index,cardLayoutName);
WCardTagLayout layout = (WCardTagLayout) this.tagLayout.toData(); 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)); titleButton.setText(getTabTitleName(layout));
XCardSwitchButton showButton = new XCardSwitchButton(titleButton, dimension, cardLayout, tagLayout); XCardSwitchButton showButton = new XCardSwitchButton(titleButton, dimension, cardLayout, tagLayout);

9
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){ private void drawBackground(CardSwitchButton button, WidgetTitle widgetTitle){
Background background = widgetTitle.getBackground(); Background background = widgetTitle.getBackground();
TemplateStyle templateStyle = ((WCardTagLayout) tagLayout.toData()).getTemplateStyle(); TemplateStyle templateStyle = ((WCardTagLayout) tagLayout.toData()).getTemplateStyle();
Background initialBackground = button.getInitialBackground(); //获取当前tab的index
Background selectBackground = button.getClickBackground(); 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()) { if (button.isShowButton()) {
this.setContentBackground(selectBackground == null ? templateStyle.getSelectBackground() : selectBackground); this.setContentBackground(selectBackground == null ? templateStyle.getSelectBackground() : selectBackground);
} else { } else {

16
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.WCardMainBorderLayout;
import com.fr.form.ui.container.cardlayout.WCardTagLayout; import com.fr.form.ui.container.cardlayout.WCardTagLayout;
import com.fr.form.ui.container.cardlayout.WCardTitleLayout; 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.ComparatorUtils;
import com.fr.general.Inter; 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.ArrayUtils;
import com.fr.stable.Constants; import com.fr.stable.Constants;
import com.fr.stable.core.PropertyChangeAdapter; import com.fr.stable.core.PropertyChangeAdapter;
@ -493,4 +496,17 @@ public class XWCardLayout extends XLayoutContainer {
initStyle(); 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();
}
}
} }

8
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.form.ui.container.cardlayout.WTabFitLayout;
import com.fr.general.ComparatorUtils; import com.fr.general.ComparatorUtils;
import com.fr.general.FRFont; import com.fr.general.FRFont;
import com.fr.general.cardtag.DefaultTemplateStyle;
import javax.swing.border.Border; import javax.swing.border.Border;
import java.awt.*; import java.awt.*;
@ -132,7 +133,14 @@ public class XWCardTagLayout extends XWHorizontalBoxLayout {
WTabFitLayout fitLayout = new WTabFitLayout(widgetName, tabFitIndex, currentCard); WTabFitLayout fitLayout = new WTabFitLayout(widgetName, tabFitIndex, currentCard);
fitLayout.setTabNameIndex(getTabNameIndex()); fitLayout.setTabNameIndex(getTabNameIndex());
XWTabFitLayout tabFitLayout = new XWTabFitLayout(fitLayout, new Dimension()); 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.setxCardSwitchButton((XCardSwitchButton)this.getComponent(0));
tabFitLayout.checkButonType();
tabFitLayout.setBackupParent(cardLayout); tabFitLayout.setBackupParent(cardLayout);
cardLayout.add(tabFitLayout, widgetName); cardLayout.add(tabFitLayout, widgetName);
this.cardLayout.toData().setShowIndex(index); this.cardLayout.toData().setShowIndex(index);

11
designer_form/src/com/fr/design/designer/creator/cardlayout/XWTabFitLayout.java

@ -102,6 +102,10 @@ public class XWTabFitLayout extends XWFitLayout {
super(widget, initSize); super(widget, initSize);
} }
public WTabFitLayout getWTabFitLayout(){
return (WTabFitLayout)data;
}
@Override @Override
public UIPopupMenu createPopupMenu(FormDesigner formDesigner) { public UIPopupMenu createPopupMenu(FormDesigner formDesigner) {
return UIPopupMenu.EMPTY; // 不要菜单 return UIPopupMenu.EMPTY; // 不要菜单
@ -210,8 +214,12 @@ public class XWTabFitLayout extends XWFitLayout {
return crPropertyDescriptors; return crPropertyDescriptors;
} }
private void checkButonType() { public void checkButonType() {
WTabFitLayout wTabFitLayout = ((WTabFitLayout) data); WTabFitLayout wTabFitLayout = ((WTabFitLayout) data);
XCardSwitchButton xCardSwitchButton = this.getxCardSwitchButton();
if(xCardSwitchButton == null){
initRelateSwitchButton();
}
CardSwitchButton cardSwitchButton = (CardSwitchButton) this.xCardSwitchButton.toData(); CardSwitchButton cardSwitchButton = (CardSwitchButton) this.xCardSwitchButton.toData();
boolean isStyle = wTabFitLayout.isCustomStyle(); boolean isStyle = wTabFitLayout.isCustomStyle();
Background initialBackground = wTabFitLayout.getInitialBackground(); Background initialBackground = wTabFitLayout.getInitialBackground();
@ -586,6 +594,7 @@ public class XWTabFitLayout extends XWFitLayout {
@Override @Override
public void firePropertyChange(){ public void firePropertyChange(){
checkButonType();
//根据字体长度设置tab宽度 //根据字体长度设置tab宽度
setCardSwitchBtnSize(); setCardSwitchBtnSize();
XWCardLayout cardLayout = (XWCardLayout) this.getBackupParent(); XWCardLayout cardLayout = (XWCardLayout) this.getBackupParent();

31
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.gui.ilable.UILabel;
import com.fr.design.mainframe.widget.accessibles.AccessibleTabBackgroundEditor; import com.fr.design.mainframe.widget.accessibles.AccessibleTabBackgroundEditor;
import com.fr.design.widget.component.BackgroundCompPane; import com.fr.design.widget.component.BackgroundCompPane;
import com.fr.form.ui.CardSwitchButton;
import com.fr.form.ui.container.cardlayout.WTabFitLayout; import com.fr.form.ui.container.cardlayout.WTabFitLayout;
import com.fr.general.Background; import com.fr.general.Background;
import com.fr.general.Inter; import com.fr.general.Inter;
@ -29,33 +28,35 @@ public class TabFitLayoutBackgroundPane extends BackgroundCompPane<WTabFitLayout
return new UILabel(Inter.getLocText("FR-Designer_Background_Select")); return new UILabel(Inter.getLocText("FR-Designer_Background_Select"));
} }
public void update(CardSwitchButton cardSwitchButton){ @Override
public void update(WTabFitLayout tabFitLayout){
int selectIndex = backgroundHead.getSelectedIndex(); int selectIndex = backgroundHead.getSelectedIndex();
if(selectIndex == 0){ if(selectIndex == 0){
cardSwitchButton.setCustomStyle(false); tabFitLayout.setCustomStyle(false);
cardSwitchButton.setInitialBackground(null); tabFitLayout.setInitialBackground(null);
cardSwitchButton.setOverBackground(null); tabFitLayout.setOverBackground(null);
cardSwitchButton.setClickBackground(null); tabFitLayout.setClickBackground(null);
}else{ }else{
cardSwitchButton.setCustomStyle(true); tabFitLayout.setCustomStyle(true);
cardSwitchButton.setInitialBackground((Background) initalBackgroundEditor.getValue()); tabFitLayout.setInitialBackground((Background) initalBackgroundEditor.getValue());
cardSwitchButton.setOverBackground((Background) overBackgroundEditor.getValue()); tabFitLayout.setOverBackground((Background) overBackgroundEditor.getValue());
cardSwitchButton.setClickBackground((Background)clickBackgroundEditor.getValue()); tabFitLayout.setClickBackground((Background)clickBackgroundEditor.getValue());
} }
switchCard(); switchCard();
} }
public void populate(CardSwitchButton cardSwitchButton){ @Override
if(!cardSwitchButton.isCustomStyle()){ public void populate(WTabFitLayout tabFitLayout){
if(!tabFitLayout.isCustomStyle()){
backgroundHead.setSelectedIndex(0); backgroundHead.setSelectedIndex(0);
initalBackgroundEditor.setValue(null); initalBackgroundEditor.setValue(null);
overBackgroundEditor.setValue(null); overBackgroundEditor.setValue(null);
clickBackgroundEditor.setValue(null); clickBackgroundEditor.setValue(null);
}else{ }else{
backgroundHead.setSelectedIndex(1); backgroundHead.setSelectedIndex(1);
initalBackgroundEditor.setValue(cardSwitchButton.getInitialBackground()); initalBackgroundEditor.setValue(tabFitLayout.getInitialBackground());
overBackgroundEditor.setValue(cardSwitchButton.getOverBackground()); overBackgroundEditor.setValue(tabFitLayout.getOverBackground());
clickBackgroundEditor.setValue(cardSwitchButton.getClickBackground()); clickBackgroundEditor.setValue(tabFitLayout.getClickBackground());
} }
switchCard(); switchCard();
} }

20
designer_form/src/com/fr/design/widget/ui/designer/layout/WCardTagLayoutDefinePane.java

@ -1,10 +1,9 @@
package com.fr.design.widget.ui.designer.layout; package com.fr.design.widget.ui.designer.layout;
import com.fr.design.constants.LayoutConstants; import com.fr.design.constants.LayoutConstants;
import com.fr.design.designer.creator.cardlayout.XWCardLayout;
import com.fr.design.mainframe.widget.accessibles.AccessibleTabPaneBackgroundEditor; import com.fr.design.mainframe.widget.accessibles.AccessibleTabPaneBackgroundEditor;
import com.fr.form.ui.CardSwitchButton;
import com.fr.general.ComparatorUtils; import com.fr.general.ComparatorUtils;
import com.fr.general.cardtag.DefaultTemplateStyle;
import com.fr.general.cardtag.TemplateStyle; import com.fr.general.cardtag.TemplateStyle;
import com.fr.design.designer.IntervalConstants; import com.fr.design.designer.IntervalConstants;
import com.fr.design.designer.creator.XCreator; import com.fr.design.designer.creator.XCreator;
@ -123,7 +122,8 @@ public class WCardTagLayoutDefinePane extends AbstractDataModify<WCardTagLayout>
public WCardTagLayout updateBean() { public WCardTagLayout updateBean() {
//标题背景和字体属性设置在WCardLayout上做兼容 //标题背景和字体属性设置在WCardLayout上做兼容
XLayoutContainer topLayout = creator.getTopLayout(); 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(); FRFont frFont = layoutBorderStyle.getTitle().getFrFont() == null ? FRFont.getInstance() : layoutBorderStyle.getTitle().getFrFont();
layoutBorderStyle.getTitle().setFrFont(frFontPane.update(frFont)); layoutBorderStyle.getTitle().setFrFont(frFontPane.update(frFont));
WCardTagLayout layout = (WCardTagLayout) creator.toData(); WCardTagLayout layout = (WCardTagLayout) creator.toData();
@ -140,7 +140,7 @@ public class WCardTagLayoutDefinePane extends AbstractDataModify<WCardTagLayout>
backgroundEditor.setValue(templateStyle.getDefaultBackground()); backgroundEditor.setValue(templateStyle.getDefaultBackground());
layoutBorderStyle.getTitle().setBackground(templateStyle.getDefaultBackground()); layoutBorderStyle.getTitle().setBackground(templateStyle.getDefaultBackground());
//重置内部tab的默认背景 //重置内部tab的默认背景
resetTabBackground(layout, templateStyle); xCardLayout.resetTabBackground(templateStyle);
layout.setTemplateStyle(templateStyle); layout.setTemplateStyle(templateStyle);
} else { } else {
layoutBorderStyle.getTitle().setBackground((Background) backgroundEditor.getValue()); layoutBorderStyle.getTitle().setBackground((Background) backgroundEditor.getValue());
@ -148,16 +148,4 @@ public class WCardTagLayoutDefinePane extends AbstractDataModify<WCardTagLayout>
return layout; 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);
}
}
} }

4
designer_form/src/com/fr/design/widget/ui/designer/layout/WTabFitLayoutDefinePane.java

@ -83,7 +83,7 @@ public class WTabFitLayoutDefinePane extends AbstractDataModify<WTabFitLayout> {
if(ob.getCurrentCard() == null){ if(ob.getCurrentCard() == null){
ob.setCurrentCard(getRelateSwitchButton(ob)); ob.setCurrentCard(getRelateSwitchButton(ob));
} }
borderStyle.populate(ob.getCurrentCard()); borderStyle.populate(ob);
titleField.setText(ob.getCurrentCard().getText()); titleField.setText(ob.getCurrentCard().getText());
} }
@ -118,7 +118,7 @@ public class WTabFitLayoutDefinePane extends AbstractDataModify<WTabFitLayout> {
@Override @Override
public WTabFitLayout updateBean() { public WTabFitLayout updateBean() {
WTabFitLayout layout = (WTabFitLayout) creator.toData(); WTabFitLayout layout = (WTabFitLayout) creator.toData();
borderStyle.update(layout.getCurrentCard()); borderStyle.update(layout);
if (ComparatorUtils.equals(getGlobalName(), Inter.getLocText("FR-Designer_Layout-Padding"))) { if (ComparatorUtils.equals(getGlobalName(), Inter.getLocText("FR-Designer_Layout-Padding"))) {
paddingBoundPane.update(layout); paddingBoundPane.update(layout);
} }

Loading…
Cancel
Save