Browse Source

fix:处理代码兼容

feature/x
kerry 2 years ago
parent
commit
0b4917e0ea
  1. 182
      designer-base/src/main/java/com/fr/design/file/MultiTemplateTabPane.java
  2. 7
      designer-base/src/main/java/com/fr/design/file/SaveSomeTemplatePane.java
  3. 7
      designer-base/src/main/java/com/fr/design/file/TemplateTabManager.java
  4. 5
      designer-base/src/main/java/com/fr/design/file/TemplateTabOperateProvider.java
  5. 8
      designer-base/src/main/java/com/fr/design/file/impl/AbstractTemplateTabOperate.java

182
designer-base/src/main/java/com/fr/design/file/MultiTemplateTabPane.java

@ -13,16 +13,13 @@ import com.fr.design.gui.imenu.UIScrollPopUpMenu;
import com.fr.design.i18n.DesignSizeI18nManager; import com.fr.design.i18n.DesignSizeI18nManager;
import com.fr.design.i18n.Toolkit; import com.fr.design.i18n.Toolkit;
import com.fr.design.mainframe.JTemplate; import com.fr.design.mainframe.JTemplate;
import com.fr.design.mainframe.TemplateSavingChecker;
import com.fr.design.utils.DesignUtils; import com.fr.design.utils.DesignUtils;
import com.fr.design.utils.TemplateUtils;
import com.fr.design.utils.gui.GUICoreUtils; import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.design.utils.gui.GUIPaintUtils; import com.fr.design.utils.gui.GUIPaintUtils;
import com.fr.file.FILE; import com.fr.file.FILE;
import com.fr.general.ComparatorUtils; import com.fr.general.ComparatorUtils;
import com.fr.general.IOUtils; import com.fr.general.IOUtils;
import com.fr.stable.Constants; import com.fr.stable.Constants;
import com.fr.third.javax.annotation.Nonnull;
import javax.swing.BorderFactory; import javax.swing.BorderFactory;
import javax.swing.ButtonModel; import javax.swing.ButtonModel;
@ -31,10 +28,8 @@ import javax.swing.ImageIcon;
import javax.swing.JComponent; import javax.swing.JComponent;
import javax.swing.JMenu; import javax.swing.JMenu;
import javax.swing.JMenuItem; import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JSeparator; import javax.swing.JSeparator;
import javax.swing.MenuElement; import javax.swing.MenuElement;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities; import javax.swing.SwingUtilities;
import javax.swing.plaf.basic.BasicMenuItemUI; import javax.swing.plaf.basic.BasicMenuItemUI;
import java.awt.AWTEvent; import java.awt.AWTEvent;
@ -48,7 +43,6 @@ import java.awt.Graphics2D;
import java.awt.RenderingHints; import java.awt.RenderingHints;
import java.awt.event.AWTEventListener; import java.awt.event.AWTEventListener;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter; import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import java.awt.event.MouseListener; import java.awt.event.MouseListener;
@ -58,6 +52,7 @@ import java.awt.geom.GeneralPath;
import java.awt.geom.Line2D; import java.awt.geom.Line2D;
import java.awt.geom.Path2D; import java.awt.geom.Path2D;
import java.awt.geom.RoundRectangle2D; import java.awt.geom.RoundRectangle2D;
import java.util.List;
/** /**
* 改个名字一个拼写 n 个错误 * 改个名字一个拼写 n 个错误
@ -238,90 +233,60 @@ public class MultiTemplateTabPane extends JComponent {
} }
@Override /**
public Dimension getPreferredSize() { * 留作兼容
Dimension dimension = super.getPreferredSize(); * @return
dimension.height = HEIGHT; */
return dimension; @Deprecated
public JTemplate getSelectedFile() {
return TemplateTabManager.getInstance().getSelectedFile();
} }
private UIMenuItem initCloseOther() { /**
UIMenuItem closeOther = new UIMenuItem(Toolkit.i18nText("Fine-Design_Basic_FS_Close_Other_Templates")); * 关闭掉当前已打开文件列表中指定的文件
// Yvan: 英文下文本显示不全,后续发现如果将模板名设置的比较短,其它语言也会出现显示不全的问题,所以设置一下文本水平居中 *
closeOther.setHorizontalAlignment(SwingConstants.CENTER); * @param file 指定的文件
setListDownItemPreferredSize(closeOther); */
closeOther.addActionListener(new ActionListener() { @Deprecated
@Override public void closeFileTemplate(FILE file) {
public void actionPerformed(ActionEvent e) { TemplateTabManager.getInstance().closeFileTemplate(file);
//int tabSize = TemplateTabManager.getInstance().getCurrentOperator().getOpenedJTemplates().size();
int tabSize = TemplateTabManager.getInstance().getCurrentOperator().getOpenedJTemplates().size();
if (tabSize == 1) {
return;
}
if (!TemplateSavingChecker.check()) {
return;
}
SaveSomeTemplatePane saveSomeTempaltePane = new SaveSomeTemplatePane(false);
//点击关闭其他模板,并且点击确定保存
if (saveSomeTempaltePane.showSavePane()) {
JTemplate<?, ?>[] panes = new JTemplate<?, ?>[tabSize];
for (int i = 0; i < tabSize; i++) {
panes[i] = TemplateTabManager.getInstance().getCurrentOperator().getOpenedJTemplates().get(i);
}
for (int i = 0; i < panes.length; i++) {
if (i != TemplateTabManager.getInstance().getCurrentOperator().getSelectIndex()) {
JTemplate<?, ?> jTemplate = panes[i];
//判断关闭的模板是不是格式刷的被参照的模板
TemplateTabManager.getInstance().getCurrentOperator().getOpenedJTemplates().remove(jTemplate);
TemplateTabManager.getInstance().closeFormat(jTemplate);
HistoryTemplateListCache.getInstance().closeSelectedReport(jTemplate);
closeAndFreeLock(jTemplate);
}
}
JTemplate<?, ?> currentTemplate = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate();
TemplateTabManager.getInstance().resetSelectIndex(currentTemplate);
THIS.repaint();
}
//如果取消保存了,则不关闭其他模板
}
});
if (TemplateTabManager.getInstance().getCurrentOperator().getOpenedJTemplates().size() == 1) {
closeOther.setEnabled(false);
}
return closeOther;
} }
private UIMenuItem[] createListDownTemplate() { /**
int templateTabCount = TemplateTabManager.getInstance().getCurrentOperator().getOpenedJTemplates().size(); * 刷新打开模板
UIMenuItem[] templates = new UIMenuItem[templateTabCount]; *
for (int i = 0; i < templateTabCount; i++) { * @param history 模板
final int index = i; */
final JTemplate tem = TemplateTabManager.getInstance().getCurrentOperator().getOpenedJTemplates().get(i); @Deprecated
templates[i] = new UIMenuItem(tempalteShowName(tem), tem.getIcon()); public void refreshOpenedTemplate(List<JTemplate<?, ?>> history) {
templates[i].setUI(new UIListDownItemUI()); TemplateTabManager.getInstance().refreshOpenedTemplate(history);
setListDownItemPreferredSize(templates[i]);
if (i == TemplateTabManager.getInstance().getCurrentOperator().getSelectIndex()) {
//画选中的高亮
templates[i].setBackground(UIConstants.SHADOW_CENTER);
}
templates[i].addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
TemplateTabManager.getInstance().getCurrentOperator().setSelectIndex(index);
tem.activeNewJTemplate();
}
});
} }
return templates;
/**
* 设置临时Template
* @param auotCreate
*/
@Deprecated
public void setTemTemplate(JTemplate<?, ?> auotCreate) {
TemplateTabManager.getInstance().setTemTemplate(auotCreate);
} }
private void setListDownItemPreferredSize(UIMenuItem item) { /**
Dimension dimension = item.getPreferredSize(); * 设置选中模板索引
dimension.height = LIST_DOWN_HEIGHT; * @param index
item.setPreferredSize(dimension); */
@Deprecated
public void setSelectedIndex(int index) {
TemplateTabManager.getInstance().getCurrentOperator().setSelectIndex(index);
} }
@Override
public Dimension getPreferredSize() {
Dimension dimension = super.getPreferredSize();
dimension.height = HEIGHT;
return dimension;
}
private String tempalteShowName(JTemplate<?, ?> template) { private String tempalteShowName(JTemplate<?, ?> template) {
return TemplateTabManager.getInstance().getTemplateShowName(template); return TemplateTabManager.getInstance().getTemplateShowName(template);
@ -682,14 +647,23 @@ public class MultiTemplateTabPane extends JComponent {
generalPath.closePath(); generalPath.closePath();
} }
/**
private void closeAndFreeLock(@Nonnull JTemplate<?, ?> template) { * 设置是否关闭当前打开的模板
FILE file = template.getEditingFILE(); * @param isCloseCurrent
// 只有是环境内的文件,才执行释放锁 */
if (file != null && file.isEnvFile()) { @Deprecated
// release lock public void setIsCloseCurrent(boolean isCloseCurrent) {
TemplateResourceManager.getResource().closeTemplate(file.getPath()); TemplateTabManager.getInstance().setCloseCurrent(isCloseCurrent);
} }
/**
* 关闭模板
*
* @param specifiedTemplate 模板
*/
@Deprecated
public void closeSpecifiedTemplate(JTemplate<?, ?> specifiedTemplate) {
TemplateTabManager.getInstance().closeSpecifiedTemplate(specifiedTemplate);
} }
@ -710,6 +684,40 @@ public class MultiTemplateTabPane extends JComponent {
return evtX >= (maxWidth + SMALLGAP) && evtX <= (getWidth() - SMALLGAP); return evtX >= (maxWidth + SMALLGAP) && evtX <= (getWidth() - SMALLGAP);
} }
/**
* 后台关闭当前编辑模板
*/
@Deprecated
public void closeCurrentTpl() {
TemplateTabManager.getInstance().closeCurrentTpl();
}
/**
* 关闭模板
*
* @param closedTemplate 模板
*/
@Deprecated
public void closeFormat(JTemplate closedTemplate) {
TemplateTabManager.getInstance().closeFormat(closedTemplate);
}
/**
* 关闭掉一个模板之后激活新的待显示模板
*/
@Deprecated
public void activePrevTemplateAfterClose() {
TemplateTabManager.getInstance().activePrevTemplateAfterClose();
}
/**
* 处理自动新建的模板 在切换时的处理
*/
@Deprecated
public void doWithtemTemplate() {
TemplateTabManager.getInstance().doWithtemTemplate();
}
private int getTemplateIndex(int evtX) { private int getTemplateIndex(int evtX) {
int textX = 0; int textX = 0;

7
designer-base/src/main/java/com/fr/design/file/SaveSomeTemplatePane.java

@ -186,6 +186,13 @@ public class SaveSomeTemplatePane extends BasicPane {
return isAllSaved; return isAllSaved;
} }
/**
* 兼容方法
*/
@Deprecated
public void populate() {
populate(HistoryTemplateListPane.getInstance().getHistoryList());
}
private void populate(java.util.List<JTemplate<?, ?>> opendedTemplate) { private void populate(java.util.List<JTemplate<?, ?>> opendedTemplate) {
JTemplate<?, ?> currentTemplate = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate(); JTemplate<?, ?> currentTemplate = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate();

7
designer-base/src/main/java/com/fr/design/file/TemplateTabManager.java

@ -230,6 +230,13 @@ public class TemplateTabManager {
return resultMap; return resultMap;
} }
/**
* 留作兼容
*/
public void activePrevTemplateAfterClose(){
getCurrentOperator().activePrevTemplateAfterClose();
}
/** /**
* 关闭其他 * 关闭其他
*/ */

5
designer-base/src/main/java/com/fr/design/file/TemplateTabOperateProvider.java

@ -121,4 +121,9 @@ public interface TemplateTabOperateProvider {
*/ */
String getTemplateShowName(JTemplate jTemplate); String getTemplateShowName(JTemplate jTemplate);
/**
* 留作兼容在关闭模板后激活前一个模板
*/
void activePrevTemplateAfterClose();
} }

8
designer-base/src/main/java/com/fr/design/file/impl/AbstractTemplateTabOperate.java

@ -262,6 +262,14 @@ public abstract class AbstractTemplateTabOperate implements TemplateTabOperatePr
activePrevTemplateAfterClose(specifiedTemplate == HistoryTemplateListCache.getInstance().getCurrentEditingTemplate()); activePrevTemplateAfterClose(specifiedTemplate == HistoryTemplateListCache.getInstance().getCurrentEditingTemplate());
} }
/**
* 关闭掉一个模板之后激活新的待显示模板
*/
@Override
public void activePrevTemplateAfterClose(){
activePrevTemplateAfterClose(TemplateTabManager.getInstance().isCloseCurrent());
}
/** /**
* 关闭掉一个模板之后激活新的待显示模板 * 关闭掉一个模板之后激活新的待显示模板
*/ */

Loading…
Cancel
Save