From 68537da66777ae642c2406cfedd0a457ca84505c Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Tue, 2 Jan 2018 15:17:33 +0800 Subject: [PATCH 1/8] rt --- .../alphafine/search/manager/impl/FileSearchManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java b/designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java index 8da604ab13..659eba7449 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java +++ b/designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java @@ -106,8 +106,8 @@ public class FileSearchManager implements AlphaFineSearchProvider { if (moreModelList != null && !moreModelList.isEmpty()) { return moreModelList; } + searchText = dealWithSearchText(searchText); this.filterModelList = new SearchResult(); - this.lessModelList = new SearchResult(); this.moreModelList = new SearchResult(); searchText = dealWithSearchText(searchText); Env env = FRContext.getCurrentEnv(); From a92b17618e3bdabfdbcfaed638878816063f4f50 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Tue, 2 Jan 2018 15:42:43 +0800 Subject: [PATCH 2/8] rt --- .../search/manager/impl/FileSearchManager.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java b/designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java index 659eba7449..69ca500705 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java +++ b/designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java @@ -40,6 +40,7 @@ public class FileSearchManager implements AlphaFineSearchProvider { private SearchResult filterModelList; private SearchResult lessModelList; private SearchResult moreModelList; + private String searchText; private List fileNodes = null; //停止搜索 private boolean stopSearch = false; @@ -80,6 +81,7 @@ public class FileSearchManager implements AlphaFineSearchProvider { lessModelList.add(new MoreModel(Inter.getLocText("FR-Designer_Templates"))); return lessModelList; } + this.searchText = searchText; Env env = FRContext.getCurrentEnv(); fileNodes = new ArrayList<>(); fileNodes = listTpl(env, ProjectConstants.REPORTLETS_NAME, true); @@ -106,15 +108,13 @@ public class FileSearchManager implements AlphaFineSearchProvider { if (moreModelList != null && !moreModelList.isEmpty()) { return moreModelList; } - searchText = dealWithSearchText(searchText); this.filterModelList = new SearchResult(); this.moreModelList = new SearchResult(); - searchText = dealWithSearchText(searchText); Env env = FRContext.getCurrentEnv(); AlphaFineHelper.checkCancel(); isContainCpt = true; isContainFrm = true; - doSearch(searchText, false, env); + doSearch(this.searchText, false, env); moreModelList.addAll(filterModelList.subList(AlphaFineConstants.SHOW_SIZE, filterModelList.size())); return moreModelList; } @@ -286,4 +286,12 @@ public class FileSearchManager implements AlphaFineSearchProvider { public void setMoreModelList(SearchResult moreModelList) { this.moreModelList = moreModelList; } + + public String getSearchText() { + return searchText; + } + + public void setSearchText(String searchText) { + this.searchText = searchText; + } } \ No newline at end of file From 3bdac54599b1a49af4fd136ba352f1a370760473 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Tue, 2 Jan 2018 16:12:21 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E6=90=9C=E7=B4=A2bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../alphafine/search/manager/impl/FileSearchManager.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java b/designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java index 69ca500705..799321a182 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java +++ b/designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java @@ -76,19 +76,18 @@ public class FileSearchManager implements AlphaFineSearchProvider { this.filterModelList = new SearchResult(); this.lessModelList = new SearchResult(); this.moreModelList = new SearchResult(); - searchText = dealWithSearchText(searchText); - if (StringUtils.isBlank(searchText) || ComparatorUtils.equals(searchText, DS_NAME)) { + this.searchText = dealWithSearchText(searchText); + if (StringUtils.isBlank(this.searchText) || ComparatorUtils.equals(this.searchText, DS_NAME)) { lessModelList.add(new MoreModel(Inter.getLocText("FR-Designer_Templates"))); return lessModelList; } - this.searchText = searchText; Env env = FRContext.getCurrentEnv(); fileNodes = new ArrayList<>(); fileNodes = listTpl(env, ProjectConstants.REPORTLETS_NAME, true); AlphaFineHelper.checkCancel(); isContainCpt = true; isContainFrm = true; - doSearch(searchText, true, env); + doSearch(this.searchText, true, env); if (stopSearch) { lessModelList.add(0, new MoreModel(Inter.getLocText("FR-Designer_Templates"), Inter.getLocText("FR-Designer_AlphaFine_ShowAll"), true, CellType.FILE)); lessModelList.addAll(filterModelList.subList(0, AlphaFineConstants.SHOW_SIZE)); From 62d6574e6689cf21b682be70c264667b0c44a2d1 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Tue, 2 Jan 2018 20:07:54 +0800 Subject: [PATCH 4/8] =?UTF-8?q?=E8=BF=9C=E7=A8=8B=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E6=90=9C=E7=B4=A2bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manager/impl/FileSearchManager.java | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java b/designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java index 799321a182..9dfec93df3 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java +++ b/designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java @@ -24,6 +24,7 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; +import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; @@ -121,10 +122,11 @@ public class FileSearchManager implements AlphaFineSearchProvider { private void doSearch(String searchText, boolean needMore, Env env) { for (FileNode node : fileNodes) { boolean isAlreadyContain = false; - String fileEnvPath = node.getEnvPath(); - String filePath = StableUtils.pathJoin(env.getPath(), fileEnvPath); isAlreadyContain = searchFile(searchText, node, isAlreadyContain, needMore); - searchFileContent(searchText, node, isAlreadyContain, filePath, needMore); + searchFileContent(env, searchText, node, isAlreadyContain, needMore); + if (filterModelList.size() > AlphaFineConstants.SHOW_SIZE && stopSearch) { + return; + } } } @@ -146,13 +148,11 @@ public class FileSearchManager implements AlphaFineSearchProvider { * @param searchText * @param node * @param isAlreadyContain - * @param filePath */ - private void searchFileContent(String searchText, FileNode node, boolean isAlreadyContain, String filePath, boolean needMore) { + private void searchFileContent(Env env, String searchText, FileNode node, boolean isAlreadyContain, boolean needMore) { if (DesignerEnvManager.getEnvManager().getAlphaFineConfigManager().isContainFileContent()) { - try { - InputStreamReader isr = new InputStreamReader(new FileInputStream(new File(filePath)), "UTF-8"); + InputStreamReader isr = new InputStreamReader(env.readBean(node.getEnvPath().substring(ProjectConstants.REPORTLETS_NAME.length() + 1), ProjectConstants.REPORTLETS_NAME), "UTF-8"); BufferedReader reader = new BufferedReader(isr); String line; int columnNumber; @@ -167,6 +167,7 @@ public class FileSearchManager implements AlphaFineSearchProvider { if (isFoundInContent && !isAlreadyContain) { FileModel model = new FileModel(node.getName(), node.getEnvPath()); if (!AlphaFineHelper.getFilterResult().contains(model)) { + AlphaFineHelper.checkCancel(); filterModelList.add(model); } if (this.filterModelList.size() > AlphaFineConstants.SHOW_SIZE && needMore) { @@ -175,10 +176,8 @@ public class FileSearchManager implements AlphaFineSearchProvider { } isr.close(); reader.close(); - } catch (FileNotFoundException e) { - FRLogger.getLogger().error(e.getMessage()); - } catch (IOException e) { - FRLogger.getLogger().error(e.getMessage()); + } catch (Exception e) { + FRLogger.getLogger().error("file read error: " + e.getMessage()); } } } @@ -196,6 +195,7 @@ public class FileSearchManager implements AlphaFineSearchProvider { if (node.getName().toLowerCase().contains(searchText)) { FileModel model = new FileModel(node.getName(), node.getEnvPath()); if (!AlphaFineHelper.getFilterResult().contains(model)) { + AlphaFineHelper.checkCancel(); filterModelList.add(model); } if(filterModelList.size() > AlphaFineConstants.SHOW_SIZE && needMore) { From f15a19b19be33bc1fc8915daa83c310e0840ff73 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Wed, 3 Jan 2018 15:30:00 +0800 Subject: [PATCH 5/8] rt --- .../manager/impl/FileSearchManager.java | 61 +++++++++---------- 1 file changed, 28 insertions(+), 33 deletions(-) diff --git a/designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java b/designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java index 9dfec93df3..9a858a73dd 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java +++ b/designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java @@ -15,16 +15,11 @@ import com.fr.general.ComparatorUtils; import com.fr.general.FRLogger; import com.fr.general.Inter; import com.fr.json.JSONObject; -import com.fr.stable.StableUtils; import com.fr.stable.StringUtils; import com.fr.stable.project.ProjectConstants; import java.io.BufferedReader; import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; @@ -123,7 +118,9 @@ public class FileSearchManager implements AlphaFineSearchProvider { for (FileNode node : fileNodes) { boolean isAlreadyContain = false; isAlreadyContain = searchFile(searchText, node, isAlreadyContain, needMore); - searchFileContent(env, searchText, node, isAlreadyContain, needMore); + if (DesignerEnvManager.getEnvManager().getAlphaFineConfigManager().isContainFileContent() && node.getLock() == null) { + searchFileContent(env, searchText, node, isAlreadyContain, needMore); + } if (filterModelList.size() > AlphaFineConstants.SHOW_SIZE && stopSearch) { return; } @@ -150,35 +147,33 @@ public class FileSearchManager implements AlphaFineSearchProvider { * @param isAlreadyContain */ private void searchFileContent(Env env, String searchText, FileNode node, boolean isAlreadyContain, boolean needMore) { - if (DesignerEnvManager.getEnvManager().getAlphaFineConfigManager().isContainFileContent()) { - try { - InputStreamReader isr = new InputStreamReader(env.readBean(node.getEnvPath().substring(ProjectConstants.REPORTLETS_NAME.length() + 1), ProjectConstants.REPORTLETS_NAME), "UTF-8"); - BufferedReader reader = new BufferedReader(isr); - String line; - int columnNumber; - boolean isFoundInContent = false; - while ((line = reader.readLine()) != null) { - columnNumber = line.toLowerCase().indexOf(searchText); - if (columnNumber != -1) { - isFoundInContent = true; - break; - } + try { + InputStreamReader isr = new InputStreamReader(env.readBean(node.getEnvPath().substring(ProjectConstants.REPORTLETS_NAME.length() + 1), ProjectConstants.REPORTLETS_NAME), "UTF-8"); + BufferedReader reader = new BufferedReader(isr); + String line; + int columnNumber; + boolean isFoundInContent = false; + while ((line = reader.readLine()) != null) { + columnNumber = line.toLowerCase().indexOf(searchText); + if (columnNumber != -1) { + isFoundInContent = true; + break; + } + } + if (isFoundInContent && !isAlreadyContain) { + FileModel model = new FileModel(node.getName(), node.getEnvPath()); + if (!AlphaFineHelper.getFilterResult().contains(model)) { + AlphaFineHelper.checkCancel(); + filterModelList.add(model); } - if (isFoundInContent && !isAlreadyContain) { - FileModel model = new FileModel(node.getName(), node.getEnvPath()); - if (!AlphaFineHelper.getFilterResult().contains(model)) { - AlphaFineHelper.checkCancel(); - filterModelList.add(model); - } - if (this.filterModelList.size() > AlphaFineConstants.SHOW_SIZE && needMore) { - stopSearch = true; - } + if (this.filterModelList.size() > AlphaFineConstants.SHOW_SIZE && needMore) { + stopSearch = true; } - isr.close(); - reader.close(); - } catch (Exception e) { - FRLogger.getLogger().error("file read error: " + e.getMessage()); } + isr.close(); + reader.close(); + } catch (Exception e) { + FRLogger.getLogger().error("file read error: " + e.getMessage()); } } @@ -198,7 +193,7 @@ public class FileSearchManager implements AlphaFineSearchProvider { AlphaFineHelper.checkCancel(); filterModelList.add(model); } - if(filterModelList.size() > AlphaFineConstants.SHOW_SIZE && needMore) { + if (filterModelList.size() > AlphaFineConstants.SHOW_SIZE && needMore) { stopSearch = true; } isAlreadyContain = true; From ba4afc50ae8f2a803265660ac90c024a3a0c65c7 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Wed, 3 Jan 2018 15:40:29 +0800 Subject: [PATCH 6/8] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=B4=A8=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../alphafine/search/manager/impl/FileSearchManager.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java b/designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java index 9a858a73dd..8cc5786833 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java +++ b/designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java @@ -20,6 +20,7 @@ import com.fr.stable.project.ProjectConstants; import java.io.BufferedReader; import java.io.File; +import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; @@ -148,7 +149,8 @@ public class FileSearchManager implements AlphaFineSearchProvider { */ private void searchFileContent(Env env, String searchText, FileNode node, boolean isAlreadyContain, boolean needMore) { try { - InputStreamReader isr = new InputStreamReader(env.readBean(node.getEnvPath().substring(ProjectConstants.REPORTLETS_NAME.length() + 1), ProjectConstants.REPORTLETS_NAME), "UTF-8"); + InputStream inputStream = env.readBean(node.getEnvPath().substring(ProjectConstants.REPORTLETS_NAME.length() + 1), ProjectConstants.REPORTLETS_NAME); + InputStreamReader isr = new InputStreamReader(inputStream, "UTF-8"); BufferedReader reader = new BufferedReader(isr); String line; int columnNumber; From 5c572170242b350f788a047551e7f95be83c2ffa Mon Sep 17 00:00:00 2001 From: hzzz Date: Wed, 3 Jan 2018 17:40:16 +0800 Subject: [PATCH 7/8] =?UTF-8?q?=E9=BB=98=E8=AE=A4=E4=B8=8D=E5=B8=A6?= =?UTF-8?q?=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/actions/file/WebPreviewUtils.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/designer_base/src/com/fr/design/actions/file/WebPreviewUtils.java b/designer_base/src/com/fr/design/actions/file/WebPreviewUtils.java index f682f7ddf1..2f62fad5a4 100644 --- a/designer_base/src/com/fr/design/actions/file/WebPreviewUtils.java +++ b/designer_base/src/com/fr/design/actions/file/WebPreviewUtils.java @@ -34,15 +34,17 @@ public final class WebPreviewUtils { if (map == null || map == Collections.EMPTY_MAP) { map = new HashMap<>(); } - map.put("mode", DesignerMode.getMode().toString()); + if (DesignerMode.isVcsMode()) { + map.put("mode", DesignerMode.getMode().toString()); + } DesignerContext.getDesignerFrame().refreshToolbar(); jt.stopEditing(); /* * alex:如果没有保存,先保存到Env - * - * 如果保存失败,不执行下面的WebPreview - */ + * + * 如果保存失败,不执行下面的WebPreview + */ if (!jt.isSaved() && !jt.saveTemplate2Env()) { return; } @@ -98,4 +100,4 @@ public final class WebPreviewUtils { } } } -} \ No newline at end of file +} From 6796c90dee99223fa577cb7e6e16578ace13f60d Mon Sep 17 00:00:00 2001 From: kerry Date: Thu, 4 Jan 2018 13:58:20 +0800 Subject: [PATCH 8/8] =?UTF-8?q?REPORT-6251=20tabpane=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../layout/FRBorderLayoutAdapter.java | 5 -- .../layout/FRCardMainBorderLayoutAdapter.java | 62 +++++++++++++++++++ .../cardlayout/XWCardMainBorderLayout.java | 7 +++ .../creator/cardlayout/XWCardTagLayout.java | 14 ----- .../creator/cardlayout/XWTabFitLayout.java | 17 ++++- 5 files changed, 85 insertions(+), 20 deletions(-) create mode 100644 designer_form/src/com/fr/design/designer/beans/adapters/layout/FRCardMainBorderLayoutAdapter.java diff --git a/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRBorderLayoutAdapter.java b/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRBorderLayoutAdapter.java index 7ebc872025..6cbc3c7650 100644 --- a/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRBorderLayoutAdapter.java +++ b/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRBorderLayoutAdapter.java @@ -3,8 +3,6 @@ package com.fr.design.designer.beans.adapters.layout; import java.awt.BorderLayout; import java.awt.Component; import java.awt.Dimension; - -import com.fr.design.designer.creator.cardlayout.XWCardTagLayout; import com.fr.general.ComparatorUtils; import com.fr.design.designer.beans.ConstraintsGroupModel; import com.fr.design.designer.beans.HoverPainter; @@ -36,9 +34,6 @@ public class FRBorderLayoutAdapter extends AbstractLayoutAdapter { * @param creator 组件 */ public void fix(XCreator creator) { - if(creator.acceptType(XWCardTagLayout.class)){ - creator = (XCreator) creator.getParent(); - } FRBorderLayout layout = (FRBorderLayout)container.getFRLayout(); Object constraints = layout.getConstraints(creator); if (ComparatorUtils.equals(constraints, BorderLayout.NORTH)) { diff --git a/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRCardMainBorderLayoutAdapter.java b/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRCardMainBorderLayoutAdapter.java new file mode 100644 index 0000000000..4b17ffaedb --- /dev/null +++ b/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRCardMainBorderLayoutAdapter.java @@ -0,0 +1,62 @@ +package com.fr.design.designer.beans.adapters.layout; + +import com.fr.design.designer.creator.XCreator; +import com.fr.design.designer.creator.XLayoutContainer; +import com.fr.design.designer.creator.cardlayout.XWCardTagLayout; +import com.fr.design.form.layout.FRBorderLayout; +import com.fr.general.ComparatorUtils; +import com.fr.general.Inter; + +import javax.swing.JOptionPane; +import java.awt.BorderLayout; +import java.awt.Rectangle; + +/** + * cardMainBorderLayout适配器 + * + * @author kerry + * @date 2019/1/4 + */ +public class FRCardMainBorderLayoutAdapter extends FRBorderLayoutAdapter { + + public FRCardMainBorderLayoutAdapter(XLayoutContainer container) { + super(container); + } + + /** + * CardMainBorderLayout的title部分不能超出layout边界 + * + * @param creator 组件 + */ + @Override + public void fix(XCreator creator) { + if (creator.acceptType(XWCardTagLayout.class)) { + creator = (XCreator) creator.getParent(); + } + boolean beyondBounds = calculateBeyondBounds(creator); + if (!beyondBounds) { + super.fix(creator); + } + } + + private boolean calculateBeyondBounds(XCreator creator) { + FRBorderLayout layout = (FRBorderLayout) container.getFRLayout(); + Object constraints = layout.getConstraints(creator); + Rectangle rectangle = creator.getBounds(); + //不能超出控件边界 + if (ComparatorUtils.equals(constraints, BorderLayout.NORTH) || ComparatorUtils.equals(constraints, BorderLayout.SOUTH)) { + int containerHeight = container.getHeight(); + if (rectangle.height > containerHeight) { + JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer-Beyond_Tablayout_Bounds")); + return true; + } + } else if (ComparatorUtils.equals(constraints, BorderLayout.EAST) || ComparatorUtils.equals(constraints, BorderLayout.WEST)) { + int containerWidth = container.getWidth(); + if (rectangle.width > containerWidth) { + JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer-Beyond_Tablayout_Bounds")); + return true; + } + } + return false; + } +} diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java index 828c7f6c8b..6915ca0121 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java @@ -5,6 +5,8 @@ package com.fr.design.designer.creator.cardlayout; import com.fr.design.designer.beans.AdapterBus; import com.fr.design.designer.beans.ComponentAdapter; +import com.fr.design.designer.beans.LayoutAdapter; +import com.fr.design.designer.beans.adapters.layout.FRCardMainBorderLayoutAdapter; import com.fr.design.designer.beans.models.SelectionModel; import com.fr.design.designer.creator.XCreator; import com.fr.design.designer.creator.XCreatorUtils; @@ -366,4 +368,9 @@ public class XWCardMainBorderLayout extends XWBorderLayout{ this.addCardPart((XWCardLayout)this.getComponent(0)); } + @Override + public LayoutAdapter getLayoutAdapter() { + return new FRCardMainBorderLayoutAdapter(this); + } + } \ 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 5c3d80de6e..964265bc9f 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 @@ -33,7 +33,6 @@ import com.fr.design.form.layout.FRVerticalLayout; import com.fr.design.gui.ilable.UILabel; import com.fr.design.mainframe.EditingMouseListener; import com.fr.design.mainframe.FormDesigner; -import com.fr.design.mainframe.WidgetPropertyPane; import com.fr.form.ui.CardSwitchButton; import com.fr.form.ui.Widget; import com.fr.form.ui.container.WCardLayout; @@ -380,13 +379,6 @@ public class XWCardTagLayout extends XWHorizontalBoxLayout { XCardSwitchButton temp = (XCardSwitchButton) this.getComponent(i); setTabBtnSize(cardWidth, cardHeight, temp); } - - FormDesigner formDesigner = WidgetPropertyPane.getInstance().getEditingFormDesigner(); - LayoutAdapter layoutAdapter = AdapterBus.searchLayoutAdapter(formDesigner, parent); - if (layoutAdapter != null) { - parent.setBackupBound(parent.getBounds()); - layoutAdapter.fix(parent); - } } public void setTabBtnSize(int cardWidth, int cardHeight, XCardSwitchButton temp){ @@ -429,12 +421,6 @@ public class XWCardTagLayout extends XWHorizontalBoxLayout { setTabBtnSize(cardWidth, cardHeight, temp); } - FormDesigner formDesigner = WidgetPropertyPane.getInstance().getEditingFormDesigner(); - LayoutAdapter layoutAdapter = AdapterBus.searchLayoutAdapter(formDesigner, parent); - if (layoutAdapter != null) { - parent.setBackupBound(parent.getBounds()); - layoutAdapter.fix(parent); - } } } \ No newline at end of file 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 90e85b2533..52beb60d27 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 @@ -455,12 +455,28 @@ public class XWTabFitLayout extends XWFitLayout { @Override public Component getParentShow(){ XCardSwitchButton cardSwitchButton = this.getxCardSwitchButton(); + if(cardSwitchButton == null){ + initRelateSwitchButton(); + } //控件树上显示其taglayout层 if ((cardSwitchButton != null)) { return cardSwitchButton.getTagLayout(); } return super.getParentShow(); } + + public void initRelateSwitchButton(){ + //先确定此tabFitLayout所处位置 + XLayoutContainer parentContainer = this.getBackupParent(); + int index = parentContainer.getIndexOfChild(this); + XWCardMainBorderLayout cardMainBorderLayout = (XWCardMainBorderLayout) this.getTopLayout(); + XWCardTitleLayout titleLayout = cardMainBorderLayout.getTitlePart(); + XWCardTagLayout tagLayout = titleLayout.getTagPart(); + XCreator xCreator = tagLayout.getXCreator(index); + if(xCreator != null){ + this.setxCardSwitchButton((XCardSwitchButton)xCreator); + } + } /** * 去除原有的间隔 @@ -606,5 +622,4 @@ public class XWTabFitLayout extends XWFitLayout { xCardSwitchButton.setPreferredSize(new Dimension(width, xCardSwitchButton.getHeight())); } - } \ No newline at end of file