Browse Source

Merge branch 'feature/9.0' of http://cloud.finedevelop.com:2015/scm/~plough/design into feature/9.0

plough 7 years ago
parent
commit
7b6776deba
  1. 52
      designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java
  2. 2
      designer_base/src/com/fr/design/actions/file/WebPreviewUtils.java
  3. 5
      designer_form/src/com/fr/design/designer/beans/adapters/layout/FRBorderLayoutAdapter.java
  4. 62
      designer_form/src/com/fr/design/designer/beans/adapters/layout/FRCardMainBorderLayoutAdapter.java
  5. 7
      designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java
  6. 14
      designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardTagLayout.java
  7. 17
      designer_form/src/com/fr/design/designer/creator/cardlayout/XWTabFitLayout.java

52
designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java

@ -15,15 +15,12 @@ import com.fr.general.ComparatorUtils;
import com.fr.general.FRLogger; import com.fr.general.FRLogger;
import com.fr.general.Inter; import com.fr.general.Inter;
import com.fr.json.JSONObject; import com.fr.json.JSONObject;
import com.fr.stable.StableUtils;
import com.fr.stable.StringUtils; import com.fr.stable.StringUtils;
import com.fr.stable.project.ProjectConstants; import com.fr.stable.project.ProjectConstants;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.InputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -40,6 +37,7 @@ public class FileSearchManager implements AlphaFineSearchProvider {
private SearchResult filterModelList; private SearchResult filterModelList;
private SearchResult lessModelList; private SearchResult lessModelList;
private SearchResult moreModelList; private SearchResult moreModelList;
private String searchText;
private List<FileNode> fileNodes = null; private List<FileNode> fileNodes = null;
//停止搜索 //停止搜索
private boolean stopSearch = false; private boolean stopSearch = false;
@ -75,8 +73,8 @@ public class FileSearchManager implements AlphaFineSearchProvider {
this.filterModelList = new SearchResult(); this.filterModelList = new SearchResult();
this.lessModelList = new SearchResult(); this.lessModelList = new SearchResult();
this.moreModelList = new SearchResult(); this.moreModelList = new SearchResult();
searchText = dealWithSearchText(searchText); this.searchText = dealWithSearchText(searchText);
if (StringUtils.isBlank(searchText) || ComparatorUtils.equals(searchText, DS_NAME)) { if (StringUtils.isBlank(this.searchText) || ComparatorUtils.equals(this.searchText, DS_NAME)) {
lessModelList.add(new MoreModel(Inter.getLocText("FR-Designer_Templates"))); lessModelList.add(new MoreModel(Inter.getLocText("FR-Designer_Templates")));
return lessModelList; return lessModelList;
} }
@ -86,7 +84,7 @@ public class FileSearchManager implements AlphaFineSearchProvider {
AlphaFineHelper.checkCancel(); AlphaFineHelper.checkCancel();
isContainCpt = true; isContainCpt = true;
isContainFrm = true; isContainFrm = true;
doSearch(searchText, true, env); doSearch(this.searchText, true, env);
if (stopSearch) { if (stopSearch) {
lessModelList.add(0, new MoreModel(Inter.getLocText("FR-Designer_Templates"), Inter.getLocText("FR-Designer_AlphaFine_ShowAll"), true, CellType.FILE)); 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)); lessModelList.addAll(filterModelList.subList(0, AlphaFineConstants.SHOW_SIZE));
@ -107,14 +105,12 @@ public class FileSearchManager implements AlphaFineSearchProvider {
return moreModelList; return moreModelList;
} }
this.filterModelList = new SearchResult(); this.filterModelList = new SearchResult();
this.lessModelList = new SearchResult();
this.moreModelList = new SearchResult(); this.moreModelList = new SearchResult();
searchText = dealWithSearchText(searchText);
Env env = FRContext.getCurrentEnv(); Env env = FRContext.getCurrentEnv();
AlphaFineHelper.checkCancel(); AlphaFineHelper.checkCancel();
isContainCpt = true; isContainCpt = true;
isContainFrm = true; isContainFrm = true;
doSearch(searchText, false, env); doSearch(this.searchText, false, env);
moreModelList.addAll(filterModelList.subList(AlphaFineConstants.SHOW_SIZE, filterModelList.size())); moreModelList.addAll(filterModelList.subList(AlphaFineConstants.SHOW_SIZE, filterModelList.size()));
return moreModelList; return moreModelList;
} }
@ -122,10 +118,13 @@ public class FileSearchManager implements AlphaFineSearchProvider {
private void doSearch(String searchText, boolean needMore, Env env) { private void doSearch(String searchText, boolean needMore, Env env) {
for (FileNode node : fileNodes) { for (FileNode node : fileNodes) {
boolean isAlreadyContain = false; boolean isAlreadyContain = false;
String fileEnvPath = node.getEnvPath();
String filePath = StableUtils.pathJoin(env.getPath(), fileEnvPath);
isAlreadyContain = searchFile(searchText, node, isAlreadyContain, needMore); isAlreadyContain = searchFile(searchText, node, isAlreadyContain, needMore);
searchFileContent(searchText, node, isAlreadyContain, filePath, needMore); if (DesignerEnvManager.getEnvManager().getAlphaFineConfigManager().isContainFileContent() && node.getLock() == null) {
searchFileContent(env, searchText, node, isAlreadyContain, needMore);
}
if (filterModelList.size() > AlphaFineConstants.SHOW_SIZE && stopSearch) {
return;
}
} }
} }
@ -147,13 +146,11 @@ public class FileSearchManager implements AlphaFineSearchProvider {
* @param searchText * @param searchText
* @param node * @param node
* @param isAlreadyContain * @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 { try {
InputStreamReader isr = new InputStreamReader(new FileInputStream(new File(filePath)), "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); BufferedReader reader = new BufferedReader(isr);
String line; String line;
int columnNumber; int columnNumber;
@ -168,6 +165,7 @@ public class FileSearchManager implements AlphaFineSearchProvider {
if (isFoundInContent && !isAlreadyContain) { if (isFoundInContent && !isAlreadyContain) {
FileModel model = new FileModel(node.getName(), node.getEnvPath()); FileModel model = new FileModel(node.getName(), node.getEnvPath());
if (!AlphaFineHelper.getFilterResult().contains(model)) { if (!AlphaFineHelper.getFilterResult().contains(model)) {
AlphaFineHelper.checkCancel();
filterModelList.add(model); filterModelList.add(model);
} }
if (this.filterModelList.size() > AlphaFineConstants.SHOW_SIZE && needMore) { if (this.filterModelList.size() > AlphaFineConstants.SHOW_SIZE && needMore) {
@ -176,11 +174,8 @@ public class FileSearchManager implements AlphaFineSearchProvider {
} }
isr.close(); isr.close();
reader.close(); reader.close();
} catch (FileNotFoundException e) { } catch (Exception e) {
FRLogger.getLogger().error(e.getMessage()); FRLogger.getLogger().error("file read error: " + e.getMessage());
} catch (IOException e) {
FRLogger.getLogger().error(e.getMessage());
}
} }
} }
@ -197,9 +192,10 @@ public class FileSearchManager implements AlphaFineSearchProvider {
if (node.getName().toLowerCase().contains(searchText)) { if (node.getName().toLowerCase().contains(searchText)) {
FileModel model = new FileModel(node.getName(), node.getEnvPath()); FileModel model = new FileModel(node.getName(), node.getEnvPath());
if (!AlphaFineHelper.getFilterResult().contains(model)) { if (!AlphaFineHelper.getFilterResult().contains(model)) {
AlphaFineHelper.checkCancel();
filterModelList.add(model); filterModelList.add(model);
} }
if(filterModelList.size() > AlphaFineConstants.SHOW_SIZE && needMore) { if (filterModelList.size() > AlphaFineConstants.SHOW_SIZE && needMore) {
stopSearch = true; stopSearch = true;
} }
isAlreadyContain = true; isAlreadyContain = true;
@ -286,4 +282,12 @@ public class FileSearchManager implements AlphaFineSearchProvider {
public void setMoreModelList(SearchResult moreModelList) { public void setMoreModelList(SearchResult moreModelList) {
this.moreModelList = moreModelList; this.moreModelList = moreModelList;
} }
public String getSearchText() {
return searchText;
}
public void setSearchText(String searchText) {
this.searchText = searchText;
}
} }

2
designer_base/src/com/fr/design/actions/file/WebPreviewUtils.java

@ -34,7 +34,9 @@ public final class WebPreviewUtils {
if (map == null || map == Collections.EMPTY_MAP) { if (map == null || map == Collections.EMPTY_MAP) {
map = new HashMap<>(); map = new HashMap<>();
} }
if (DesignerMode.isVcsMode()) {
map.put("mode", DesignerMode.getMode().toString()); map.put("mode", DesignerMode.getMode().toString());
}
DesignerContext.getDesignerFrame().refreshToolbar(); DesignerContext.getDesignerFrame().refreshToolbar();
jt.stopEditing(); jt.stopEditing();

5
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.BorderLayout;
import java.awt.Component; import java.awt.Component;
import java.awt.Dimension; import java.awt.Dimension;
import com.fr.design.designer.creator.cardlayout.XWCardTagLayout;
import com.fr.general.ComparatorUtils; import com.fr.general.ComparatorUtils;
import com.fr.design.designer.beans.ConstraintsGroupModel; import com.fr.design.designer.beans.ConstraintsGroupModel;
import com.fr.design.designer.beans.HoverPainter; import com.fr.design.designer.beans.HoverPainter;
@ -36,9 +34,6 @@ public class FRBorderLayoutAdapter extends AbstractLayoutAdapter {
* @param creator 组件 * @param creator 组件
*/ */
public void fix(XCreator creator) { public void fix(XCreator creator) {
if(creator.acceptType(XWCardTagLayout.class)){
creator = (XCreator) creator.getParent();
}
FRBorderLayout layout = (FRBorderLayout)container.getFRLayout(); FRBorderLayout layout = (FRBorderLayout)container.getFRLayout();
Object constraints = layout.getConstraints(creator); Object constraints = layout.getConstraints(creator);
if (ComparatorUtils.equals(constraints, BorderLayout.NORTH)) { if (ComparatorUtils.equals(constraints, BorderLayout.NORTH)) {

62
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;
}
}

7
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.AdapterBus;
import com.fr.design.designer.beans.ComponentAdapter; 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.beans.models.SelectionModel;
import com.fr.design.designer.creator.XCreator; import com.fr.design.designer.creator.XCreator;
import com.fr.design.designer.creator.XCreatorUtils; import com.fr.design.designer.creator.XCreatorUtils;
@ -366,4 +368,9 @@ public class XWCardMainBorderLayout extends XWBorderLayout{
this.addCardPart((XWCardLayout)this.getComponent(0)); this.addCardPart((XWCardLayout)this.getComponent(0));
} }
@Override
public LayoutAdapter getLayoutAdapter() {
return new FRCardMainBorderLayoutAdapter(this);
}
} }

14
designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardTagLayout.java

@ -19,7 +19,6 @@ import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.imenu.UIPopupMenu; import com.fr.design.gui.imenu.UIPopupMenu;
import com.fr.design.mainframe.EditingMouseListener; import com.fr.design.mainframe.EditingMouseListener;
import com.fr.design.mainframe.FormDesigner; import com.fr.design.mainframe.FormDesigner;
import com.fr.design.mainframe.WidgetPropertyPane;
import com.fr.form.ui.CardSwitchButton; import com.fr.form.ui.CardSwitchButton;
import com.fr.form.ui.Widget; import com.fr.form.ui.Widget;
import com.fr.form.ui.container.WCardLayout; import com.fr.form.ui.container.WCardLayout;
@ -378,13 +377,6 @@ public class XWCardTagLayout extends XWHorizontalBoxLayout {
XCardSwitchButton temp = (XCardSwitchButton) this.getComponent(i); XCardSwitchButton temp = (XCardSwitchButton) this.getComponent(i);
setTabBtnSize(cardWidth, cardHeight, temp); 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){ public void setTabBtnSize(int cardWidth, int cardHeight, XCardSwitchButton temp){
@ -427,12 +419,6 @@ public class XWCardTagLayout extends XWHorizontalBoxLayout {
setTabBtnSize(cardWidth, cardHeight, temp); 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);
}
} }
} }

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

@ -456,6 +456,9 @@ public class XWTabFitLayout extends XWFitLayout {
@Override @Override
public Component getParentShow(){ public Component getParentShow(){
XCardSwitchButton cardSwitchButton = this.getxCardSwitchButton(); XCardSwitchButton cardSwitchButton = this.getxCardSwitchButton();
if(cardSwitchButton == null){
initRelateSwitchButton();
}
//控件树上显示其taglayout层 //控件树上显示其taglayout层
if ((cardSwitchButton != null)) { if ((cardSwitchButton != null)) {
return cardSwitchButton.getTagLayout(); return cardSwitchButton.getTagLayout();
@ -463,6 +466,19 @@ public class XWTabFitLayout extends XWFitLayout {
return super.getParentShow(); 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);
}
}
/** /**
* 去除原有的间隔 * 去除原有的间隔
* @param gap 间隔 * @param gap 间隔
@ -607,5 +623,4 @@ public class XWTabFitLayout extends XWFitLayout {
xCardSwitchButton.setPreferredSize(new Dimension(width, xCardSwitchButton.getHeight())); xCardSwitchButton.setPreferredSize(new Dimension(width, xCardSwitchButton.getHeight()));
} }
} }
Loading…
Cancel
Save