diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index 0337a6be1f..4ad4931eb2 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -2160,10 +2160,10 @@ FR-Designer_Move_Down=Move down(B) FR-Designer_Move_To_Top=Move to top(T) FR-Designer_Move_To_Bottom=Move to bottom(K) FR-Designer_Tab_Style_Template=Style Template -FR-Designer_Tab_Template_One=Template One -FR-Designer_Tab_Template_Two=Template Two -FR-Designer_Tab_Template_Three=Template Three -FR-Designer_Tab_Template_Four=Template Four -FR-Designer_Tab_Template_Five=Template Five -FR-Designer_Tab_Template_Six=Template Six +FR-Designer_Tab_Banner_Style=Banner Style +FR-Designer_Tab_BookMark_Style=BookMark Style +FR-Designer_Tab_Card_Style=Card Style +FR-Designer_Tab_Menu_Style=Menu Style +FR-Designer_Tab_Pentagon_Style=Pentagon Style +FR-Designer_Tab_Trapezoid_Style=Trapezoid Style FR-Designer_Tab_Display_Position=Display Position diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties index dc16e87a27..fb28e02f07 100644 --- a/designer_base/src/com/fr/design/locale/designer_en_US.properties +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -2159,10 +2159,10 @@ FR-Designer_Move_Down=Move down(B) FR-Designer_Move_To_Top=Move to top(T) FR-Designer_Move_To_Bottom=Move to bottom(K) FR-Designer_Tab_Style_Template=Style Template -FR-Designer_Tab_Template_One=Template One -FR-Designer_Tab_Template_Two=Template Two -FR-Designer_Tab_Template_Three=Template Three -FR-Designer_Tab_Template_Four=Template Four -FR-Designer_Tab_Template_Five=Template Five -FR-Designer_Tab_Template_Six=Template Six +FR-Designer_Tab_Banner_Style=Banner Style +FR-Designer_Tab_BookMark_Style=BookMark Style +FR-Designer_Tab_Card_Style=Card Style +FR-Designer_Tab_Menu_Style=Menu Style +FR-Designer_Tab_Pentagon_Style=Pentagon Style +FR-Designer_Tab_Trapezoid_Style=Trapezoid Style FR-Designer_Tab_Display_Position=Display Position \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties index 3b2c34d297..7b9c83d440 100644 --- a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties +++ b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties @@ -2160,10 +2160,10 @@ FR-Designer_Preference_CachingTemplate=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30E FR-Designer_Preference_MaxCachingTemplate=\u8BBE\u8BA1\u5668\u6700\u5927\u30AD\u30E3\u30C3\u30B7\u30E5\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u6570\uFF1A FR-Designer_Preference_CachingTemplateTip=\u8A2D\u7F6E\u30920\u8868\u793A\u6A5F\u80FD\u8BBE\u8BA1\u5668\u9589\u9396;\u518D\u958B\u5F8C\u767A\u52B9\u3059\u308B FR-Designer_Tab_Style_Template= -FR-Designer_Tab_Template_One= -FR-Designer_Tab_Template_Two= -FR-Designer_Tab_Template_Three= -FR-Designer_Tab_Template_Four= -FR-Designer_Tab_Template_Five= -FR-Designer_Tab_Template_Six= +FR-Designer_Tab_Banner_Style= +FR-Designer_Tab_BookMark_Style= +FR-Designer_Tab_Card_Style= +FR-Designer_Tab_Menu_Style= +FR-Designer_Tab_Pentagon_Style= +FR-Designer_Tab_Trapezoid_Style= FR-Designer_Tab_Display_Position= diff --git a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties index 92cc47a236..f16116d74a 100644 --- a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties +++ b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties @@ -2160,10 +2160,10 @@ FR-Designer_Preference_CachingTemplate=\uD15C\uD50C\uB9BF \uBA54\uBAA8\uB9AC \uC FR-Designer_Preference_MaxCachingTemplate=\uB514\uC790\uC774\uB108 \uCD5C\uB300 \uCE90\uC2DC \uD15C\uD50C\uB9BF \uAC1C\uC218: FR-Designer_Preference_CachingTemplateTip=\uC124\uC815 \uC744 0 \uD45C\uC2DC \uB2EB\uAE30 \uC774 \uAE30\uB2A5; \uB2E4\uC2DC \uB514\uC790\uC774\uB108 \uD6C4 \uBC1C\uD6A8\uB41C\uB2E4 FR-Designer_Tab_Style_Template= -FR-Designer_Tab_Template_One= -FR-Designer_Tab_Template_Two= -FR-Designer_Tab_Template_Three= -FR-Designer_Tab_Template_Four= -FR-Designer_Tab_Template_Five= -FR-Designer_Tab_Template_Six= +FR-Designer_Tab_Banner_Style= +FR-Designer_Tab_BookMark_Style= +FR-Designer_Tab_Card_Style= +FR-Designer_Tab_Menu_Style= +FR-Designer_Tab_Pentagon_Style= +FR-Designer_Tab_Trapezoid_Style= FR-Designer_Tab_Display_Position= diff --git a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties index 0e35765fd5..c012f7cdf2 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties @@ -2160,10 +2160,10 @@ FR-Designer_Move_Down=\u4E0B\u79FB\u4E00\u5C42(B) FR-Designer_Move_To_Top=\u7F6E\u4E8E\u9876\u5C42(T) FR-Designer_Move_To_Bottom=\u7F6E\u4E8E\u5E95\u5C42(K) FR-Designer_Tab_Style_Template=\u6837\u5F0F\u6A21\u677F -FR-Designer_Tab_Template_One=\u6A21\u677F\u4E00 -FR-Designer_Tab_Template_Two=\u6A21\u677F\u4E8C -FR-Designer_Tab_Template_Three=\u6A21\u677F\u4E09 -FR-Designer_Tab_Template_Four=\u6A21\u677F\u56DB -FR-Designer_Tab_Template_Five=\u6A21\u677F\u4E94 -FR-Designer_Tab_Template_Six=\u6A21\u677F\u516D +FR-Designer_Tab_Banner_Style=\u9526\u65D7 +FR-Designer_Tab_BookMark_Style=\u4E66\u7B7E\u5F0F +FR-Designer_Tab_Card_Style=\u5361\u7247\u5F0F +FR-Designer_Tab_Menu_Style=\u83DC\u5355\u5F0F +FR-Designer_Tab_Pentagon_Style=\u4E94\u8FB9\u5F62 +FR-Designer_Tab_Trapezoid_Style=\u68AF\u5F62 FR-Designer_Tab_Display_Position=\u663E\u793A\u4F4D\u7F6E \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties index 873d48f7ba..af70d929c5 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties @@ -2159,10 +2159,10 @@ FR-Designer_Move_Down=\u4E0B\u79FB\u4E00\u5C64(B) FR-Designer_Move_To_Top=\u7F6E\u65BC\u9802\u5C64(T) FR-Designer_Move_To_Bottom=\u7F6E\u65BC\u5E95\u5C64(K) FR-Designer_Tab_Style_Template=\u6A23\u5F0F\u6A21\u677F -FR-Designer_Tab_Template_One=\u6A21\u677F\u4E00 -FR-Designer_Tab_Template_Two=\u6A21\u677F\u4E8C -FR-Designer_Tab_Template_Three=\u6A21\u677F\u4E09 -FR-Designer_Tab_Template_Four=\u6A21\u677F\u56DB -FR-Designer_Tab_Template_Five=\u6A21\u677F\u4E94 -FR-Designer_Tab_Template_Six=\u6A21\u677F\u516D +FR-Designer_Tab_Banner_Style=\u9326\u65D7 +FR-Designer_Tab_BookMark_Style=\u66F8\u7C64\u5F0F +FR-Designer_Tab_Card_Style=\u5361\u7247\u5F0F +FR-Designer_Tab_Menu_Style=\u83DC\u55AE\u5F0F +FR-Designer_Tab_Pentagon_Style=\u4E94\u908A\u5F62 +FR-Designer_Tab_Trapezoid_Style=\u68AF\u5F62 FR-Designer_Tab_Display_Position=\u986F\u793A\u4F4D\u7F6E diff --git a/designer_base/src/com/fr/design/mainframe/widget/accessibles/AccessibleTabBackgroundEditor.java b/designer_base/src/com/fr/design/mainframe/widget/accessibles/AccessibleTabBackgroundEditor.java new file mode 100644 index 0000000000..ade9208565 --- /dev/null +++ b/designer_base/src/com/fr/design/mainframe/widget/accessibles/AccessibleTabBackgroundEditor.java @@ -0,0 +1,40 @@ +package com.fr.design.mainframe.widget.accessibles; + +import com.fr.base.background.ColorBackground; +import com.fr.design.dialog.BasicDialog; +import com.fr.design.dialog.DialogActionAdapter; +import com.fr.design.mainframe.widget.wrappers.BackgroundWrapper; +import com.fr.design.style.background.BackgroundTabPane; +import com.fr.general.Background; + +import javax.swing.SwingUtilities; +import java.awt.Dimension; + +/** + * @author kerry + * @date 2018/1/17 + */ +public class AccessibleTabBackgroundEditor extends UneditableAccessibleEditor { + private BackgroundTabPane choosePane; + + public AccessibleTabBackgroundEditor() { + super(new BackgroundWrapper()); + } + + @Override + protected void showEditorPane() { + choosePane = new BackgroundTabPane(); + choosePane.setPreferredSize(new Dimension(600, 400)); + BasicDialog dlg = choosePane.showWindow(SwingUtilities.getWindowAncestor(this)); + dlg.addDialogActionListener(new DialogActionAdapter() { + + @Override + public void doOk() { + setValue(choosePane.update()); + fireStateChanged(); + } + }); + choosePane.populate(getValue() instanceof Background ? (Background) getValue() : new ColorBackground()); + dlg.setVisible(true); + } +} \ No newline at end of file diff --git a/designer_base/src/com/fr/design/mainframe/widget/accessibles/TemplateStylePreviewPane.java b/designer_base/src/com/fr/design/mainframe/widget/accessibles/TemplateStylePreviewPane.java index 4871bfd1d4..0f684006ae 100644 --- a/designer_base/src/com/fr/design/mainframe/widget/accessibles/TemplateStylePreviewPane.java +++ b/designer_base/src/com/fr/design/mainframe/widget/accessibles/TemplateStylePreviewPane.java @@ -14,7 +14,8 @@ import java.awt.Image; public class TemplateStylePreviewPane extends JPanel { private static final int WIDTH = 540; - private static final int HEIGHT = 500; + private static final int HEIGHT = 400; + private static final int OFFSETY = 50; private TemplateStyle templateStyle; @@ -32,6 +33,6 @@ public class TemplateStylePreviewPane extends JPanel { super.paint(g); Graphics2D g2d = (Graphics2D) g.create(); Image image = BaseUtils.readImage(templateStyle.getPreview()); - g2d.drawImage(image, 0, 0, WIDTH, HEIGHT, null); + g2d.drawImage(image, 0, OFFSETY, WIDTH, HEIGHT, null); } } diff --git a/designer_base/src/com/fr/design/style/background/BackgroundFactory.java b/designer_base/src/com/fr/design/style/background/BackgroundFactory.java index d636eb3a30..7cbff57ffa 100644 --- a/designer_base/src/com/fr/design/style/background/BackgroundFactory.java +++ b/designer_base/src/com/fr/design/style/background/BackgroundFactory.java @@ -139,7 +139,7 @@ public class BackgroundFactory { return new NullBackgroundPane(); } - private static BackgroundDetailPane createByWrapper(BackgroundUIWrapper wrapper) { + public static BackgroundDetailPane createByWrapper(BackgroundUIWrapper wrapper) { Class clazz = wrapper.getType(); if (clazz == null) { clazz = NullBackgroundPane.class; diff --git a/designer_base/src/com/fr/design/style/background/BackgroundTabPane.java b/designer_base/src/com/fr/design/style/background/BackgroundTabPane.java new file mode 100644 index 0000000000..6cc71a074e --- /dev/null +++ b/designer_base/src/com/fr/design/style/background/BackgroundTabPane.java @@ -0,0 +1,88 @@ +package com.fr.design.style.background; + +import com.fr.base.background.ColorBackground; +import com.fr.base.background.GradientBackground; +import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.design.style.background.gradient.GradientBackgroundPane; +import com.fr.design.style.background.impl.ColorBackgroundPane; +import com.fr.design.style.background.impl.NullBackgroundPane; +import com.fr.general.Background; +import com.fr.general.Inter; + +import java.util.LinkedHashMap; +import java.util.Map; + +/** + * @author kerry + * @date 2018/1/17 + */ +public class BackgroundTabPane extends BackgroundPane { + + private static Map, BackgroundUIWrapper> tabpane = new LinkedHashMap<>(); + + static { + registerTabpaneBackground(tabpane); + } + + + private static void registerTabpaneBackground(Map, BackgroundUIWrapper> map) { + map.put(null, BackgroundUIWrapper.create() + .setType(NullBackgroundPane.class).setTitle(Inter.getLocText("FR-Designer_Background_Null"))); + map.put(ColorBackground.class, BackgroundUIWrapper.create() + .setType(ColorBackgroundPane.class).setTitle(Inter.getLocText("FR-Designer_Background_Color"))); + map.put(GradientBackground.class, BackgroundUIWrapper.create() + .setType(GradientBackgroundPane.class).setTitle(Inter.getLocText("FR-Designer_Background_Gradient_Color"))); + + } + + public BackgroundTabPane() { + super(); + } + + protected void initTabPane() { + int index = 0; + for (Class key : tabpane.keySet()) { + BackgroundUIWrapper wrapper = tabpane.get(key); + wrapper.setIndex(index++); + tabbedPane.addTab(Inter.getLocText(wrapper.getTitle()), FRGUIPaneFactory.createY_AXISBoxInnerContainer_L_Pane()); + } + } + + protected BackgroundUIWrapper getBackgroundUIWrapper(Background background) { + return tabpane.get(background == null ? null : background.getClass()); + } + + protected BackgroundDetailPane getTabItemPane(Background background, int index) { + BackgroundDetailPane quickPane = cacheMap.get(index); + if (quickPane == null) { + BackgroundUIWrapper uiWrapper = getBackgroundUIWrapper(background); + quickPane = BackgroundFactory.createByWrapper(uiWrapper); + quickPane.addChangeListener(backgroundChangeListener); + cacheMap.put(index, quickPane); + } + tabbedPane.setComponentAt(index, quickPane); + tabbedPane.setSelectedIndex(index); + return quickPane; + } + + protected BackgroundDetailPane getTabItemPaneByIndex(int index) { + BackgroundDetailPane quickPane = cacheMap.get(index); + if (quickPane == null) { + quickPane = createDetailPaneByIndex(index); + tabbedPane.setComponentAt(index, quickPane); + cacheMap.put(index, quickPane); + quickPane.addChangeListener(backgroundChangeListener); + } + return quickPane; + } + + public BackgroundDetailPane createDetailPaneByIndex(int index) { + for (BackgroundUIWrapper wrapper : tabpane.values()) { + if (wrapper.getIndex() == index) { + return BackgroundFactory.createByWrapper(wrapper); + } + } + return new NullBackgroundPane(); + } + +} 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 cfa60b9fc4..fc503b9d82 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 @@ -31,6 +31,7 @@ import com.fr.general.Background; import com.fr.general.ComparatorUtils; import com.fr.general.FRFont; import com.fr.general.Inter; +import com.fr.general.cardtag.TemplateStyle; import com.fr.stable.unit.PT; import javax.swing.*; @@ -364,13 +365,15 @@ public class XCardSwitchButton extends XButton { label.setFont(newFont); label.setForeground(font.getForeground()); Background background = title.getBackground(); - if (background != null) { - if(button.isShowButton() && selectBackground != null){ - this.setContentBackground(selectBackground); - }else if (button.isShowButton() && selectBackground == null){ - background = ColorBackground.getInstance(CHOOSED_GRAL); - this.setContentBackground(background); - } else { + TemplateStyle templateStyle = ((WCardTagLayout)tagLayout.toData()).getTemplateStyle(); + Background selectBackground = templateStyle.getSelectBackground(); + if (background != null) { + if(button.isShowButton() && selectBackground != null){ + this.setContentBackground(selectBackground); + }else if (button.isShowButton() && selectBackground == null){ + background = ColorBackground.getInstance(CHOOSED_GRAL); + this.setContentBackground(background); + } else { this.setContentBackground(background); } } diff --git a/designer_form/src/com/fr/design/mainframe/actions/NewFormAction.java b/designer_form/src/com/fr/design/mainframe/actions/NewFormAction.java index dfcc8805c2..2562bd51eb 100644 --- a/designer_form/src/com/fr/design/mainframe/actions/NewFormAction.java +++ b/designer_form/src/com/fr/design/mainframe/actions/NewFormAction.java @@ -22,7 +22,7 @@ public class NewFormAction extends UpdateAction { this.setMenuKeySet(NEW_FORM); this.setName(getMenuKeySet().getMenuKeySetName()); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/buttonicon/new_form3.png")); + this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/imag es/buttonicon/new_form3.png")); this.setAccelerator(getMenuKeySet().getKeyStroke()); } diff --git a/designer_form/src/com/fr/design/widget/ui/designer/layout/WCardMainLayoutDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/layout/WCardMainLayoutDefinePane.java index 68e88bb6b7..c03f4c9115 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/layout/WCardMainLayoutDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/layout/WCardMainLayoutDefinePane.java @@ -43,7 +43,7 @@ public class WCardMainLayoutDefinePane extends AbstractDataModify { - private AccessibleImgBackgroundEditor backgroundEditor; + private AccessibleTabBackgroundEditor backgroundEditor; private FRFontPane frFontPane; private UIButtonGroup displayPositionGroup; private UIButtonGroup textDirectionGroup; @@ -49,7 +49,7 @@ public class WCardTagLayoutDefinePane extends AbstractDataModify public void initComponent() { this.setLayout(FRGUIPaneFactory.createBorderLayout()); - backgroundEditor = new AccessibleImgBackgroundEditor(); + backgroundEditor = new AccessibleTabBackgroundEditor(); templateStyleEditor = new AccessibleTemplateStyleEditor(); double f = TableLayout.FILL; double p = TableLayout.PREFERRED; @@ -60,7 +60,6 @@ public class WCardTagLayoutDefinePane extends AbstractDataModify UILabel fontLabel = new UILabel(Inter.getLocText("FR-Designer_Font")); fontLabel.setVerticalAlignment(SwingConstants.TOP); frFontPane = new FRFontPane(){ - protected JPanel createRightPane() { double p = TableLayout.PREFERRED; double f = TableLayout.FILL; @@ -124,7 +123,6 @@ public class WCardTagLayoutDefinePane extends AbstractDataModify XLayoutContainer topLayout = creator.getTopLayout(); LayoutBorderStyle layoutBorderStyle = ((XWCardMainBorderLayout)topLayout).getCardPart().toData().getBorderStyle(); FRFont frFont = layoutBorderStyle.getTitle().getFrFont() == null ? FRFont.getInstance() : layoutBorderStyle.getTitle().getFrFont(); - layoutBorderStyle.getTitle().setBackground((Background) backgroundEditor.getValue()); layoutBorderStyle.getTitle().setFrFont(frFontPane.update(frFont)); WCardTagLayout layout = (WCardTagLayout) creator.toData(); boolean isHori = displayPositionGroup.getSelectedIndex() == WTabDisplayPosition.TOP_POSITION.getType() || displayPositionGroup.getSelectedIndex() == WTabDisplayPosition.BOTTOM_POSITION.getType(); @@ -133,7 +131,14 @@ public class WCardTagLayoutDefinePane extends AbstractDataModify textDirectionGroup.setSelectedIndex(isHori? WTabTextDirection.TEXT_HORI_DERECTION.getType():WTabTextDirection.TEXT_VER_DIRECTION.getType()); } layout.setTextDirection(WTabTextDirection.parse(textDirectionGroup.getSelectedIndex())); - layout.setTemplateStyle((TemplateStyle) templateStyleEditor.getValue()); + TemplateStyle templateStyle = (TemplateStyle) templateStyleEditor.getValue(); + if(!ComparatorUtils.equals(layout.getTemplateStyle(), templateStyle)){ + backgroundEditor.setValue(templateStyle.getDefaultBackground()); + layoutBorderStyle.getTitle().setBackground(templateStyle.getDefaultBackground()); + layout.setTemplateStyle(templateStyle); + }else{ + layoutBorderStyle.getTitle().setBackground((Background) backgroundEditor.getValue()); + } return layout; }