hzzz 8 years ago
parent
commit
7672bead48
  1. 38
      designer/src/com/fr/design/mainframe/JWorkBook.java
  2. BIN
      designer_base/src/com/fr/.DS_Store
  3. 10
      designer_base/src/com/fr/design/actions/file/WebPreviewUtils.java
  4. 12
      designer_base/src/com/fr/design/file/MutilTempalteTabPane.java
  5. 3
      designer_base/src/com/fr/design/mainframe/DesignerFrameFileDealerPane.java
  6. 88
      designer_base/src/com/fr/design/mainframe/JTemplate.java
  7. 30
      designer_base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java
  8. 4
      designer_base/src/com/fr/env/RemoteEnv.java

38
designer/src/com/fr/design/mainframe/JWorkBook.java

@ -1,12 +1,25 @@
package com.fr.design.mainframe;
import com.fr.base.*;
import com.fr.base.BaseUtils;
import com.fr.base.DynamicUnitList;
import com.fr.base.FRContext;
import com.fr.base.Parameter;
import com.fr.base.ScreenResolution;
import com.fr.base.vcs.DesignerMode;
import com.fr.design.DesignModelAdapter;
import com.fr.design.ExtraDesignClassManager;
import com.fr.design.actions.AllowAuthorityEditAction;
import com.fr.design.actions.ExitAuthorityEditAction;
import com.fr.design.actions.file.WebPreviewUtils;
import com.fr.design.actions.file.export.*;
import com.fr.design.actions.file.export.CSVExportAction;
import com.fr.design.actions.file.export.EmbeddedExportExportAction;
import com.fr.design.actions.file.export.ExcelExportAction;
import com.fr.design.actions.file.export.PDFExportAction;
import com.fr.design.actions.file.export.PageExcelExportAction;
import com.fr.design.actions.file.export.PageToSheetExcelExportAction;
import com.fr.design.actions.file.export.SVGExportAction;
import com.fr.design.actions.file.export.TextExportAction;
import com.fr.design.actions.file.export.WordExportAction;
import com.fr.design.actions.report.ReportExportAttrAction;
import com.fr.design.actions.report.ReportMobileAttrAction;
import com.fr.design.actions.report.ReportParameterAction;
@ -30,7 +43,11 @@ import com.fr.design.mainframe.cell.QuickEditorRegion;
import com.fr.design.mainframe.templateinfo.JWorkBookProcessInfo;
import com.fr.design.mainframe.templateinfo.TemplateProcessInfo;
import com.fr.design.mainframe.toolbar.ToolBarMenuDockPlus;
import com.fr.design.menu.*;
import com.fr.design.menu.KeySetUtils;
import com.fr.design.menu.MenuDef;
import com.fr.design.menu.NameSeparator;
import com.fr.design.menu.ShortCut;
import com.fr.design.menu.ToolBarDef;
import com.fr.design.module.DesignModuleFactory;
import com.fr.design.parameter.ParameterDefinitePane;
import com.fr.design.parameter.ParameterInputPane;
@ -62,7 +79,6 @@ import com.fr.poly.PolyDesigner;
import com.fr.poly.creator.BlockCreator;
import com.fr.privilege.finegrain.WorkSheetPrivilegeControl;
import com.fr.report.ReportHelper;
import com.fr.report.elementcase.ElementCase;
import com.fr.report.elementcase.TemplateElementCase;
import com.fr.report.poly.PolyWorkSheet;
import com.fr.report.worksheet.WorkSheet;
@ -73,11 +89,13 @@ import com.fr.stable.module.Module;
import com.fr.stable.project.ProjectConstants;
import javax.swing.*;
import javax.swing.Icon;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileOutputStream;
import java.util.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* JWorkBook used to edit WorkBook.
@ -570,9 +588,11 @@ public class JWorkBook extends JTemplate<WorkBook, WorkBookUndoState> {
* @return 子菜单
*/
public ShortCut[] shortcut4FileMenu() {
return (ShortCut[]) ArrayUtils.addAll(
super.shortcut4FileMenu(),
BaseUtils.isAuthorityEditing() || (FRContext.getCurrentEnv() instanceof RemoteEnv) ? new ShortCut[0] : new ShortCut[]{this.createWorkBookExportMenu()}
boolean showWorkBookExportMenu = DesignerMode.isVcsMode()
|| BaseUtils.isAuthorityEditing()
|| (FRContext.getCurrentEnv() instanceof RemoteEnv);
return (ShortCut[]) ArrayUtils.addAll(super.shortcut4FileMenu(),
showWorkBookExportMenu ? new ShortCut[0] : new ShortCut[]{this.createWorkBookExportMenu()}
);
}

BIN
designer_base/src/com/fr/.DS_Store vendored

Binary file not shown.

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

@ -1,5 +1,6 @@
package com.fr.design.actions.file;
import com.fr.base.vcs.DesignerMode;
import com.fr.design.mainframe.DesignerContext;
import com.fr.design.mainframe.JTemplate;
import com.fr.design.utils.DesignUtils;
@ -11,6 +12,8 @@ import com.fr.general.web.ParameterConsts;
import com.fr.stable.project.ProjectConstants;
import javax.swing.*;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
public final class WebPreviewUtils {
@ -28,6 +31,10 @@ public final class WebPreviewUtils {
return;
}
if (map == null || map == Collections.EMPTY_MAP) {
map = new HashMap<>();
}
map.put("mode", DesignerMode.getMode().toString());
DesignerContext.getDesignerFrame().refreshToolbar();
jt.stopEditing();
@ -68,7 +75,7 @@ public final class WebPreviewUtils {
String path = currentTemplate.getPath();
if (path.startsWith(ProjectConstants.REPORTLETS_NAME)) {
path = path.substring(ProjectConstants.REPORTLETS_NAME.length() + 1);
}
java.util.List<String> parameterNameList = new java.util.ArrayList<String>();
java.util.List<String> parameterValueList = new java.util.ArrayList<String>();
@ -81,7 +88,6 @@ public final class WebPreviewUtils {
}
}
DesignUtils.visitEnvServerByParameters(parameterNameList.toArray(new String[parameterNameList.size()]), parameterValueList.toArray(new String[parameterValueList.size()]));
}
} else {
int selVal = JOptionPane.showConfirmDialog(DesignerContext.getDesignerFrame(), Inter.getLocText("Web_Preview_Message"),
Inter.getLocText("Preview_ToolTips"), JOptionPane.OK_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE);

12
designer_base/src/com/fr/design/file/MutilTempalteTabPane.java

@ -3,12 +3,12 @@ package com.fr.design.file;
import com.fr.base.BaseUtils;
import com.fr.base.GraphHelper;
import com.fr.base.vcs.DesignerMode;
import com.fr.design.constants.UIConstants;
import com.fr.design.gui.imenu.UIMenuItem;
import com.fr.design.gui.imenu.UIScrollPopUpMenu;
import com.fr.design.mainframe.DesignerContext;
import com.fr.design.mainframe.JTemplate;
import com.fr.design.mainframe.JVirtualTemplate;
import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.design.utils.gui.GUIPaintUtils;
import com.fr.file.FILE;
@ -102,6 +102,8 @@ public class MutilTempalteTabPane extends JComponent implements MouseListener, M
// 模板时,模板B会自动关闭
private JTemplate<?, ?> temTemplate = null;
//版本管理时候不允许切换tab
private boolean isVcsMode = false;
private AWTEventListener awt = new AWTEventListener() {
public void eventDispatched(AWTEvent event) {
@ -632,6 +634,12 @@ public class MutilTempalteTabPane extends JComponent implements MouseListener, M
* @param e 鼠标事件
*/
public void mousePressed(MouseEvent e) {
//如果在版本管理情况下,不允许切换tab
if (DesignerMode.isVcsMode()) {
//TODO hzzz 国际化
JOptionPane.showMessageDialog(null, "版本管理不允许切换", Inter.getLocText("FR-Designer_Alert"), JOptionPane.WARNING_MESSAGE);
return;
}
int evtX = e.getX();
int evtY = e.getY();
@ -952,6 +960,4 @@ public class MutilTempalteTabPane extends JComponent implements MouseListener, M
}
}
}
}

3
designer_base/src/com/fr/design/mainframe/DesignerFrameFileDealerPane.java

@ -174,7 +174,8 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt
/*
* Open Report Action
*/
private class OpenReportAction extends UpdateAction {
private class
OpenReportAction extends UpdateAction {
public OpenReportAction() {
this.setName(KeySetUtils.OPEN_TEMPLATE.getMenuKeySetName());

88
designer_base/src/com/fr/design/mainframe/JTemplate.java

@ -1,8 +1,13 @@
package com.fr.design.mainframe;
import com.fr.base.*;
import com.fr.base.BaseUtils;
import com.fr.base.ConfigManager;
import com.fr.base.FRContext;
import com.fr.base.Parameter;
import com.fr.base.ScreenResolution;
import com.fr.base.io.IOFile;
import com.fr.base.iofileattr.TemplateIdAttrMark;
import com.fr.base.vcs.DesignerMode;
import com.fr.design.DesignModelAdapter;
import com.fr.design.DesignState;
import com.fr.design.DesignerEnvManager;
@ -52,7 +57,6 @@ import com.fr.stable.core.UUID;
import com.fr.stable.project.ProjectConstants;
import javax.swing.*;
import javax.swing.Icon;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.undo.UndoManager;
import java.awt.*;
@ -86,7 +90,8 @@ public abstract class JTemplate<T extends IOFile, U extends BaseUndoState<?>> ex
private StringBuilder process = new StringBuilder(""); // 制作模板的过程
public int resolution = ScreenResolution.getScreenResolution();
public JTemplate() {}
public JTemplate() {
}
public JTemplate(T t, String defaultFileName) {
this(t, new MemFILE(newTemplateNameByIndex(defaultFileName)), true);
@ -128,6 +133,7 @@ public abstract class JTemplate<T extends IOFile, U extends BaseUndoState<?>> ex
openTime = System.currentTimeMillis();
}
}
private void collectInfo() { // 执行收集操作
if (openTime == 0) { // 旧模板,不收集数据
return;
@ -410,7 +416,7 @@ public abstract class JTemplate<T extends IOFile, U extends BaseUndoState<?>> ex
fireSuperTargetModified();
}
protected boolean accept(Object o){
protected boolean accept(Object o) {
return true;
}
@ -520,7 +526,7 @@ public abstract class JTemplate<T extends IOFile, U extends BaseUndoState<?>> ex
if (!editingFILE.exists()) {
return saveAsTemplate(isShowLoc);
}
if (!FRContext.getCurrentEnv().hasFileFolderAllow(this.getEditingFILE().getPath()) ) {
if (!FRContext.getCurrentEnv().hasFileFolderAllow(this.getEditingFILE().getPath())) {
JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText("FR-Designer_No-Privilege") + "!", Inter.getLocText("FR-Designer_Message"), JOptionPane.WARNING_MESSAGE);
return false;
}
@ -528,12 +534,12 @@ public abstract class JTemplate<T extends IOFile, U extends BaseUndoState<?>> ex
return this.saveFile();
}
private boolean isCancelOperation(int operation){
private boolean isCancelOperation(int operation) {
return operation == FILEChooserPane.CANCEL_OPTION ||
operation == FILEChooserPane.JOPTIONPANE_CANCEL_OPTION;
}
private boolean isOkOperation(int operation){
private boolean isOkOperation(int operation) {
return operation == FILEChooserPane.JOPTIONPANE_OK_OPTION ||
operation == FILEChooserPane.OK_OPTION;
}
@ -555,7 +561,7 @@ public abstract class JTemplate<T extends IOFile, U extends BaseUndoState<?>> ex
}
if (isOkOperation(chooseResult)) {
if (!FRContext.getCurrentEnv().hasFileFolderAllow(fileChooser.getSelectedFILE().getPath()) ) {
if (!FRContext.getCurrentEnv().hasFileFolderAllow(fileChooser.getSelectedFILE().getPath())) {
JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText("FR-Designer_No-Privilege") + "!", Inter.getLocText("FR-Designer_Message"), JOptionPane.WARNING_MESSAGE);
return false;
}
@ -567,7 +573,7 @@ public abstract class JTemplate<T extends IOFile, U extends BaseUndoState<?>> ex
return saveNewFile(editingFILE, oldName);
}
protected boolean saveNewFile(FILE editingFILE, String oldName){
protected boolean saveNewFile(FILE editingFILE, String oldName) {
// 在保存之前,初始化 templateID
initForCollect(); // 如果保存新模板(新建模板直接保存,或者另存为),则添加 templateID
@ -582,7 +588,7 @@ public abstract class JTemplate<T extends IOFile, U extends BaseUndoState<?>> ex
return result;
}
protected void mkNewFile(FILE file){
protected void mkNewFile(FILE file) {
try {
file.mkfile();
} catch (Exception e) {
@ -594,16 +600,16 @@ public abstract class JTemplate<T extends IOFile, U extends BaseUndoState<?>> ex
* 将模板另存为可以分享出去的混淆后内置数据集模板
*
* @return 是否另存成功
*
*/
public boolean saveShareFile(){
public boolean saveShareFile() {
return true;
}
public Widget getSelectElementCase(){
public Widget getSelectElementCase() {
return new NoneWidget();
}
protected FILEChooserPane getFILEChooserPane(boolean isShowLoc){
protected FILEChooserPane getFILEChooserPane(boolean isShowLoc) {
return new FILEChooserPane(true, isShowLoc);
}
@ -684,6 +690,8 @@ public abstract class JTemplate<T extends IOFile, U extends BaseUndoState<?>> ex
public ShortCut[] shortcut4FileMenu() {
if (BaseUtils.isAuthorityEditing()) {
return new ShortCut[]{new SaveTemplateAction(this), new UndoAction(this), new RedoAction(this)};
} else if (DesignerMode.isVcsMode()) {
return new ShortCut[]{new UndoAction(this), new RedoAction(this)};
} else {
return new ShortCut[]{new SaveTemplateAction(this), new SaveAsTemplateAction(this), new UndoAction(this), new RedoAction(this)};
}
@ -803,7 +811,7 @@ public abstract class JTemplate<T extends IOFile, U extends BaseUndoState<?>> ex
}
private int getVersionCompare(String versionString){
private int getVersionCompare(String versionString) {
if (StringUtils.isBlank(versionString)) {
return 0;
}
@ -813,7 +821,7 @@ public abstract class JTemplate<T extends IOFile, U extends BaseUndoState<?>> ex
}
private int getVersionCompareHBB(String versionString){
private int getVersionCompareHBB(String versionString) {
if (StringUtils.isBlank(versionString)) {
return 0;
}
@ -835,6 +843,7 @@ public abstract class JTemplate<T extends IOFile, U extends BaseUndoState<?>> ex
/**
* 判断是否是新版设计器
*
* @return 是返回true
*/
public boolean isNewDesigner() {
@ -897,41 +906,46 @@ public abstract class JTemplate<T extends IOFile, U extends BaseUndoState<?>> ex
/**
* 激活指定的template
*
*/
public void activeJTemplate(int index, JTemplate jt) {
DesignerContext.getDesignerFrame().activateJTemplate(this);
};
}
;
/**
* 激活已存在的模板
*
*/
public void activeOldJTemplate() {
DesignerContext.getDesignerFrame().activateJTemplate(this);
};
}
;
/**
* 激活新的模板
*
*/
public void activeNewJTemplate() {
DesignerContext.getDesignerFrame().addAndActivateJTemplate(this);
};
}
;
/**
* 后台关闭template
*
*/
public void closeOverLineTemplate(int index) {
JTemplate overTemplate = HistoryTemplateListPane.getInstance().getHistoryList().get(index);
HistoryTemplateListPane.getInstance().closeVirtualSelectedReport(overTemplate);
HistoryTemplateListPane.getInstance().getHistoryList().set(index, new JVirtualTemplate(overTemplate.getEditingFILE()));
};
}
;
/**
* 返回当前支持的超链界面pane
*
* @return 超链连接界面
*/
public abstract HyperlinkGroupPane getHyperLinkPane(HyperlinkGroupPaneActionProvider hyperlinkGroupPaneActionProvider);
@ -939,6 +953,7 @@ public abstract class JTemplate<T extends IOFile, U extends BaseUndoState<?>> ex
/**
* 返回当前支持的超链界面pane
* 没有悬浮弹窗显示为两列
*
* @return 超链连接界面
*/
public abstract HyperlinkGroupPane getHyperLinkPaneNoPop(HyperlinkGroupPaneActionProvider hyperlinkGroupPaneActionProvider);
@ -948,7 +963,7 @@ public abstract class JTemplate<T extends IOFile, U extends BaseUndoState<?>> ex
*
* @return 默认不是
*/
public boolean isChartBook(){
public boolean isChartBook() {
return false;
}
@ -1000,11 +1015,9 @@ public abstract class JTemplate<T extends IOFile, U extends BaseUndoState<?>> ex
* 创建内置sql提交的pane
*
* @return 内置sql提交的pane
*
*
* @date 2014-10-14-下午7:39:27
*/
public DBManipulationPane createDBManipulationPane(){
public DBManipulationPane createDBManipulationPane() {
return new DBManipulationPane();
}
@ -1012,22 +1025,22 @@ public abstract class JTemplate<T extends IOFile, U extends BaseUndoState<?>> ex
* 创建控件事件里内置sql提交的pane
*
* @return 内置sql提交的pane
*
*
* @date 2014-10-14-下午7:39:27
*/
public DBManipulationPane createDBManipulationPaneInWidget(){
public DBManipulationPane createDBManipulationPaneInWidget() {
return new DBManipulationInWidgetEventPane();
}
/**
* 取小图标主要用于多TAB标签栏
*
* @return 图表
*/
public abstract Icon getIcon();
/**
* 导出菜单项
*
* @return 菜单项
*/
public ShortCut[] shortcut4ExportMenu() {
@ -1037,12 +1050,13 @@ public abstract class JTemplate<T extends IOFile, U extends BaseUndoState<?>> ex
/**
* 复制JS代码
*/
public void copyJS(){}
public void copyJS() {
}
/**
* 系列风格改动
*/
public void styleChange(){
public void styleChange() {
}
@ -1050,14 +1064,14 @@ public abstract class JTemplate<T extends IOFile, U extends BaseUndoState<?>> ex
* 创建分享模板的按钮, 目前只有jworkbook实现了
*
* @return 分享模板按钮
*
*/
public UIButton[] createShareButton(){
public UIButton[] createShareButton() {
return new UIButton[0];
}
/**
*
*
* @param provider 预览模式
*/
public void previewMenuActionPerformed(PreviewProvider provider) {
@ -1066,6 +1080,7 @@ public abstract class JTemplate<T extends IOFile, U extends BaseUndoState<?>> ex
/**
* 支持的预览模式
*
* @return 预览模式
*/
public PreviewProvider[] supportPreview() {
@ -1074,6 +1089,7 @@ public abstract class JTemplate<T extends IOFile, U extends BaseUndoState<?>> ex
/**
* 预览模式转换
*
* @param typeCode 类型
* @return 预览模式
*/
@ -1097,6 +1113,7 @@ public abstract class JTemplate<T extends IOFile, U extends BaseUndoState<?>> ex
/**
* 加载插件中的按钮
*
* @return 按钮组
*/
public UIButton[] createExtraButtons() {
@ -1111,6 +1128,7 @@ public abstract class JTemplate<T extends IOFile, U extends BaseUndoState<?>> ex
/**
* 由于老版本的模板没有模板ID当勾选使用参数模板时候就加一个模板ID attr
*
* @param isUseParamTemplate 是否使用参数模板
*/
public void needAddTemplateIdAttr(boolean isUseParamTemplate) {

30
designer_base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java

@ -5,6 +5,7 @@ package com.fr.design.mainframe.toolbar;
import com.fr.base.BaseUtils;
import com.fr.base.FRContext;
import com.fr.base.vcs.DesignerMode;
import com.fr.design.DesignState;
import com.fr.design.ExtraDesignClassManager;
import com.fr.design.actions.UpdateAction;
@ -58,7 +59,6 @@ import com.fr.plugin.observer.PluginEvent;
import com.fr.plugin.observer.PluginEventListener;
import com.fr.plugin.observer.PluginEventType;
import com.fr.stable.ArrayUtils;
import com.fr.stable.ProductConstants;
import com.fr.stable.StringUtils;
import javax.swing.*;
@ -315,21 +315,23 @@ public abstract class ToolBarMenuDock {
}
public MenuDef createFileMenuDef(ToolBarMenuDockPlus plus) {
boolean notVcs = !DesignerMode.isVcsMode();
MenuDef menuDef = new MenuDef(Inter.getLocText("FR-Designer_File"), 'F');
ShortCut[] scs = new ShortCut[0];
if (!BaseUtils.isAuthorityEditing()) {
if (!BaseUtils.isAuthorityEditing() && notVcs) {
scs = createNewFileShortCuts();
}
if (!ArrayUtils.isEmpty(scs)) {
menuDef.addShortCut(scs);
}
if (notVcs) {
menuDef.addShortCut(openTemplateAction());
menuDef.addShortCut(new OpenRecentReportMenuDef());
addCloseCurrentTemplateAction(menuDef);
}
scs = plus.shortcut4FileMenu();
if (!ArrayUtils.isEmpty(scs)) {
@ -340,8 +342,9 @@ public abstract class ToolBarMenuDock {
addPreferenceAction(menuDef);
if (notVcs) {
addSwitchExistEnvAction(menuDef);
}
menuDef.addShortCut(new ExitDesignerAction());
insertMenu(menuDef, MenuHandler.FILE);
@ -573,22 +576,7 @@ public abstract class ToolBarMenuDock {
}
public NewTemplatePane getNewTemplatePane() {
return new NewTemplatePane() {
@Override
public Icon getNew() {
return BaseUtils.readIcon("/com/fr/design/images/buttonicon/addicon.png");
}
@Override
public Icon getMouseOverNew() {
return BaseUtils.readIcon("/com/fr/design/images/buttonicon/add_press.png");
}
@Override
public Icon getMousePressNew() {
return BaseUtils.readIcon("/com/fr/design/images/buttonicon/add_press.png");
}
};
return ToolBarNewTemplatePane.getInstance();
}
protected void insertMenu(MenuDef menuDef, String anchor) {

4
designer_base/src/com/fr/env/RemoteEnv.java vendored

@ -1009,8 +1009,8 @@ public class RemoteEnv extends AbstractEnv {
}
try {
HashMap<String, String> para = new HashMap<String, String>();
para.put("op", "fr_remote_design");
para.put("cmd", "delete_file");
para.put("op", "fs_remote_vcs");
para.put("cmd", "hzzz");
para.put("file_path", filePath);
HttpClient client = createHttpMethod(para);

Loading…
Cancel
Save