diff --git a/designer-base/src/main/java/com/fr/design/actions/file/LocalePane.java b/designer-base/src/main/java/com/fr/design/actions/file/LocalePane.java index 8d97152228..76258d8f19 100644 --- a/designer-base/src/main/java/com/fr/design/actions/file/LocalePane.java +++ b/designer-base/src/main/java/com/fr/design/actions/file/LocalePane.java @@ -12,10 +12,10 @@ import com.fr.design.gui.itextfield.UITextField; import com.fr.file.filetree.FileNode; import com.fr.general.GeneralUtils; import com.fr.general.Inter; +import com.fr.locale.InterProviderFactory; import com.fr.log.FineLoggerFactory; import com.fr.stable.ArrayUtils; import com.fr.stable.StableUtils; -import com.fr.stable.bridge.StableFactory; import com.fr.stable.project.ProjectConstants; import com.fr.workspace.WorkContext; import com.fr.workspace.resource.WorkResourceOutputStream; @@ -37,7 +37,6 @@ import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Properties; -import java.util.ResourceBundle; import java.util.Set; import java.util.Vector; @@ -121,43 +120,26 @@ public class LocalePane extends BasicPane { } private void initPredefinedProperties() { - - Map supportLocaleMap = Inter.getSupportLocaleMap(); - - String[] localeFiles = StableFactory.getLocaleFiles(); - - - + + Map supportLocaleMap = InterProviderFactory.getProvider().getSupportLocaleMap(); + + Map map; List sortKeys = new ArrayList(); - - - for (String path : localeFiles) { - ResourceBundle chineseBundle = loadResourceBundle(path, Locale.SIMPLIFIED_CHINESE); - sortKeys.addAll(chineseBundle.keySet()); - } + + + map = InterProviderFactory.getProvider().getLocalBundle(Locale.SIMPLIFIED_CHINESE).getMap(); + sortKeys.addAll(map.keySet()); Collections.sort(sortKeys); - - Map> localeResourceBundleMap = new HashMap>(); - for (Map.Entry entry : supportLocaleMap.entrySet()) { - Locale locale = entry.getKey(); - List list = new ArrayList<>(); - for (String path : localeFiles) { - ResourceBundle chineseBundle = loadResourceBundle(path, locale); - list.add(chineseBundle); - } - localeResourceBundleMap.put(locale, list); - } - + Map> data = new HashMap>(); - for (Map.Entry> entry : localeResourceBundleMap.entrySet()) { + for (Locale locale : supportLocaleMap.keySet()) { Vector column = new Vector(); - List rbs = entry.getValue(); for (String key : sortKeys) { - column.add(readText(rbs, key)); + column.add(InterProviderFactory.getProvider().getLocText(key)); } - data.put(entry.getKey(), column); + data.put(locale, column); + } - Vector keyVector = new Vector(); keyVector.addAll(sortKeys); @@ -167,20 +149,7 @@ public class LocalePane extends BasicPane { predefineTableModel.addColumn(entry.getKey().getDisplayName(), entry.getValue()); } } - - private String readText(List rbs, String key) { - for (ResourceBundle rb : rbs) { - if (rb.containsKey(key)) { - return rb.getString(key); - } - } - return null; - } - - private ResourceBundle loadResourceBundle(String dir, Locale locale) { - return ResourceBundle.getBundle(dir, locale, Inter.class.getClassLoader()); - } - + private void initCustomProperties() throws Exception { FileNode[] fileNodes = FRContext.getFileNodes().list(ProjectConstants.LOCALE_NAME); diff --git a/designer-base/src/main/java/com/fr/design/actions/file/SwitchExistEnv.java b/designer-base/src/main/java/com/fr/design/actions/file/SwitchExistEnv.java index 720cda9e76..a3d940fc3c 100644 --- a/designer-base/src/main/java/com/fr/design/actions/file/SwitchExistEnv.java +++ b/designer-base/src/main/java/com/fr/design/actions/file/SwitchExistEnv.java @@ -22,7 +22,8 @@ import com.fr.workspace.WorkContextCallback; import com.fr.workspace.Workspace; import com.fr.workspace.connect.AuthException; -import javax.swing.*; +import javax.swing.JOptionPane; +import javax.swing.UIManager; import java.awt.event.ActionEvent; import java.util.HashMap; import java.util.Iterator; @@ -108,16 +109,15 @@ public class SwitchExistEnv extends MenuDef { try { workspace = DesignerWorkspaceGenerator.generate(selectedEnv); if (workspace == null) { - JOptionPane.showMessageDialog( - DesignerContext.getDesignerFrame(), - Inter.getLocText(new String[]{"FR-Designer_M-SwitchWorkspace", "Failed"})); + JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText(new String[]{"FR-Designer_M-SwitchWorkspace", "Failed"}), + null, 0, UIManager.getIcon("OptionPane.errorIcon")); return; } WorkContext.switchTo(workspace, new WorkContextCallback() { - + @Override public void done() { - + DesignerEnvManager.getEnvManager().setCurEnvName(envName); DesignUtils.refreshDesignerFrame(); HistoryTemplateListPane.getInstance().getCurrentEditingTemplate().refreshToolArea(); @@ -125,9 +125,8 @@ public class SwitchExistEnv extends MenuDef { } }); } catch (AuthException exception) { - JOptionPane.showMessageDialog( - DesignerContext.getDesignerFrame(), - Inter.getLocText(new String[]{"Fine-Designer_Basic_Remote_Connect_Auth_Failed"})); + JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText(new String[]{"Fine-Designer_Basic_Remote_Connect_Auth_Failed", "Failed"}), + null, 0, UIManager.getIcon("OptionPane.errorIcon")); } } } diff --git a/designer-base/src/main/java/com/fr/design/actions/server/ConnectionListAction.java b/designer-base/src/main/java/com/fr/design/actions/server/ConnectionListAction.java index e14b22b6d5..0be0a7c321 100644 --- a/designer-base/src/main/java/com/fr/design/actions/server/ConnectionListAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/server/ConnectionListAction.java @@ -1,7 +1,6 @@ package com.fr.design.actions.server; -import com.fr.config.Configuration; import com.fr.data.impl.Connection; import com.fr.design.actions.UpdateAction; import com.fr.design.data.datapane.connect.ConnectionManagerPane; @@ -16,10 +15,11 @@ import com.fr.file.ConnectionConfig; import com.fr.general.IOUtils; import com.fr.general.Inter; import com.fr.locale.InterProviderFactory; +import com.fr.transaction.CallBackAdaptor; import com.fr.transaction.Configurations; -import com.fr.transaction.Worker; +import com.fr.transaction.WorkerFacade; -import javax.swing.*; +import javax.swing.KeyStroke; import java.awt.event.ActionEvent; import java.util.Map; @@ -74,26 +74,27 @@ public class ConnectionListAction extends UpdateAction { final BasicDialog databaseListDialog = databaseManagerPane.showLargeWindow(designerFrame, null); databaseListDialog.addDialogActionListener(new DialogActionAdapter() { public void doOk() { - Configurations.update(new Worker() { + if (!databaseManagerPane.isNamePermitted()) { + databaseListDialog.setDoOKSucceed(false); + return; + } + Configurations.modify(new WorkerFacade(ConnectionConfig.class) { @Override public void run() { - if (!databaseManagerPane.isNamePermitted()) { - databaseListDialog.setDoOKSucceed(false); - return; - } - if (!doWithDatasourceManager(datasourceManager, databaseManagerPane, databaseListDialog)) { - //如果更新失败,则不关闭对话框,也不写xml文件,并且将对话框定位在请重命名的那个对象页面 - return; - } - DesignerContext.getDesignerBean("databasename").refreshBeanElement(); + databaseManagerPane.update(datasourceManager); } - + }.addCallBack(new CallBackAdaptor() { @Override - public Class[] targets() { - return new Class[]{ConnectionConfig.class}; + public boolean beforeCommit() { + //如果更新失败,则不关闭对话框,也不写xml文件,并且将对话框定位在请重命名的那个对象页面 + return doWithDatasourceManager(datasourceManager, databaseManagerPane, databaseListDialog); } - }); + @Override + public void afterCommit() { + DesignerContext.getDesignerBean("databasename").refreshBeanElement(); + } + })); } }); databaseListDialog.setVisible(true); @@ -109,7 +110,6 @@ public class ConnectionListAction extends UpdateAction { * @return boolean 是否更新成功 */ public static boolean doWithDatasourceManager(ConnectionConfig datasourceManager, ConnectionShowPane connectionShowPane, BasicDialog databaseListDialog) { - connectionShowPane.update(datasourceManager); boolean isFailed = false; //存在请重命名则不能更新 int index = isConnectionMapContainsRename(datasourceManager); diff --git a/designer-base/src/main/java/com/fr/design/actions/server/GlobalParameterAction.java b/designer-base/src/main/java/com/fr/design/actions/server/GlobalParameterAction.java index d141b3b7bb..2e5294f35e 100644 --- a/designer-base/src/main/java/com/fr/design/actions/server/GlobalParameterAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/server/GlobalParameterAction.java @@ -5,7 +5,6 @@ package com.fr.design.actions.server; import com.fr.base.BaseUtils; import com.fr.base.ParameterConfig; -import com.fr.config.Configuration; import com.fr.config.ServerPreferenceConfig; import com.fr.design.DesignModelAdapter; import com.fr.design.actions.UpdateAction; @@ -16,10 +15,11 @@ import com.fr.design.mainframe.DesignerFrame; import com.fr.design.menu.MenuKeySet; import com.fr.design.parameter.ParameterManagerPane; import com.fr.general.Inter; +import com.fr.transaction.CallBackAdaptor; import com.fr.transaction.Configurations; -import com.fr.transaction.Worker; +import com.fr.transaction.WorkerFacade; -import javax.swing.*; +import javax.swing.KeyStroke; import java.awt.event.ActionEvent; @@ -49,23 +49,21 @@ public class GlobalParameterAction extends UpdateAction { parameterManagerPane.populate(ParameterConfig.getInstance().getGlobalParameters()); parameterManagerDialog.addDialogActionListener(new DialogActionAdapter() { public void doOk() { - Configurations.update(new Worker() { + Configurations.modify(new WorkerFacade(ServerPreferenceConfig.class) { @Override public void run() { - //apply new parameter list. parameterManagerPane.update(); + } + }.addCallBack(new CallBackAdaptor() { + @Override + public void afterCommit() { DesignModelAdapter model = DesignModelAdapter.getCurrentModelAdapter(); if (model != null) { model.parameterChanged(); } parameterManagerDialog.setDoOKSucceed(!parameterManagerPane.isContainsRename()); } - - @Override - public Class[] targets() { - return new Class[]{ServerPreferenceConfig.class}; - } - }); + })); } }); diff --git a/designer-base/src/main/java/com/fr/design/actions/server/GlobalTableDataAction.java b/designer-base/src/main/java/com/fr/design/actions/server/GlobalTableDataAction.java index b723b9928a..2969cf444d 100644 --- a/designer-base/src/main/java/com/fr/design/actions/server/GlobalTableDataAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/server/GlobalTableDataAction.java @@ -21,10 +21,12 @@ import com.fr.file.ProcedureConfig; import com.fr.file.TableDataConfig; import com.fr.general.Inter; import com.fr.locale.InterProviderFactory; +import com.fr.transaction.CallBackAdaptor; import com.fr.transaction.Configurations; import com.fr.transaction.Worker; +import com.fr.transaction.WorkerFacade; -import javax.swing.*; +import javax.swing.KeyStroke; import java.awt.event.ActionEvent; import java.util.HashMap; import java.util.Map; @@ -92,33 +94,35 @@ public class GlobalTableDataAction extends UpdateAction implements ResponseDataS globalTableDataDialog.addDialogActionListener(new DialogActionAdapter() { + @Override public void doOk() { - Configurations.update(new Worker() { + if (!globalTableDataPane.isNamePermitted()) { + globalTableDataDialog.setDoOKSucceed(false); + return; + } + + DesignTableDataManager.clearGlobalDs(); + + Configurations.modify(new WorkerFacade(TableDataConfig.class) { @Override public void run() { - if (!globalTableDataPane.isNamePermitted()) { - globalTableDataDialog.setDoOKSucceed(false); - return; - } - - DesignTableDataManager.clearGlobalDs(); globalTableDataPane.update(tableDataConfig); - if (!doWithDatasourceManager(tableDataConfig, globalTableDataPane, globalTableDataDialog)) { - //如果更新失败,则不关闭对话框,也不写xml文件,并且将对话框定位在请重命名的那个对象页面 - return; - } - // 刷新共有数据集 - TableDataTreePane.getInstance(DesignModelAdapter.getCurrentModelAdapter()); - fireDSChanged(globalTableDataPane.getDsChangedNameMap()); } - + }.addCallBack(new CallBackAdaptor() { @Override - public Class[] targets() { - return new Class[]{TableDataConfig.class}; + public boolean beforeCommit() { + //如果更新失败,则不关闭对话框,也不写xml文件,并且将对话框定位在请重命名的那个对象页面 + return doWithDatasourceManager(tableDataConfig, globalTableDataPane, globalTableDataDialog); } - }); + @Override + public void afterCommit() { + // 刷新共有数据集 + TableDataTreePane.getInstance(DesignModelAdapter.getCurrentModelAdapter()); + fireDSChanged(globalTableDataPane.getDsChangedNameMap()); + } + })); } }); globalTableDataDialog.setVisible(true); diff --git a/designer-base/src/main/java/com/fr/design/actions/server/ProcedureListAction.java b/designer-base/src/main/java/com/fr/design/actions/server/ProcedureListAction.java index 53b41097e2..60969bd8d8 100644 --- a/designer-base/src/main/java/com/fr/design/actions/server/ProcedureListAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/server/ProcedureListAction.java @@ -1,7 +1,6 @@ package com.fr.design.actions.server; import com.fr.base.BaseUtils; -import com.fr.config.Configuration; import com.fr.design.DesignModelAdapter; import com.fr.design.actions.UpdateAction; import com.fr.design.data.DesignTableDataManager; @@ -13,8 +12,9 @@ import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.DesignerFrame; import com.fr.file.ProcedureConfig; import com.fr.general.Inter; +import com.fr.transaction.CallBackAdaptor; import com.fr.transaction.Configurations; -import com.fr.transaction.Worker; +import com.fr.transaction.WorkerFacade; import java.awt.event.ActionEvent; @@ -44,20 +44,18 @@ public class ProcedureListAction extends UpdateAction { BasicDialog databaseListDialog = databaseManagerPane.showLargeWindow(designerFrame, null); databaseListDialog.addDialogActionListener(new DialogActionAdapter() { public void doOk() { - Configurations.update(new Worker() { + DesignTableDataManager.clearGlobalDs(); + Configurations.modify(new WorkerFacade(ProcedureConfig.class) { @Override public void run() { - DesignTableDataManager.clearGlobalDs(); databaseManagerPane.update(procedureConfig); - TableDataTreePane.getInstance(DesignModelAdapter.getCurrentModelAdapter()); } - + }.addCallBack(new CallBackAdaptor() { @Override - public Class[] targets() { - return new Class[]{ProcedureConfig.class}; + public void afterCommit() { + TableDataTreePane.getInstance(DesignModelAdapter.getCurrentModelAdapter()); } - }); - + })); } }); databaseListDialog.setVisible(true); diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionComboBoxPanel.java b/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionComboBoxPanel.java index f63b37d6cf..68db344fba 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionComboBoxPanel.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionComboBoxPanel.java @@ -1,7 +1,5 @@ package com.fr.design.data.datapane.connect; -import com.fr.base.FRContext; -import com.fr.config.Configuration; import com.fr.data.impl.AbstractDatabaseConnection; import com.fr.data.impl.Connection; import com.fr.data.impl.NameDatabaseConnection; @@ -13,11 +11,12 @@ import com.fr.design.mainframe.DesignerContext; import com.fr.file.ConnectionConfig; import com.fr.general.ComparatorUtils; import com.fr.stable.StringUtils; +import com.fr.transaction.CallBackAdaptor; import com.fr.transaction.Configurations; -import com.fr.transaction.Worker; +import com.fr.transaction.WorkerFacade; import com.fr.workspace.WorkContext; -import javax.swing.*; +import javax.swing.SwingUtilities; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.util.ArrayList; @@ -100,22 +99,24 @@ public class ConnectionComboBoxPanel extends ItemEditableComboBoxPanel { connectionListDialog.setDoOKSucceed(false); return; } - Configurations.update(new Worker() { + + Configurations.modify(new WorkerFacade(ConnectionConfig.class) { @Override public void run() { - if (!ConnectionListAction.doWithDatasourceManager(connectionConfig, connectionListPane, - connectionListDialog)) { - //如果更新失败,则不关闭对话框,也不写xml文件,并且将对话框定位在请重命名的那个对象页面 - return; - } - DesignerContext.getDesignerBean("databasename").refreshBeanElement(); + connectionListPane.update(connectionConfig); + } + }.addCallBack(new CallBackAdaptor() { + @Override + public boolean beforeCommit() { + //如果更新失败,则不关闭对话框,也不写xml文件,并且将对话框定位在请重命名的那个对象页面 + return ConnectionListAction.doWithDatasourceManager(connectionConfig, connectionListPane, connectionListDialog); } @Override - public Class[] targets() { - return new Class[]{ConnectionConfig.class}; + public void afterCommit() { + DesignerContext.getDesignerBean("databasename").refreshBeanElement(); } - }); + })); } }); diff --git a/designer-base/src/main/java/com/fr/design/formula/VariableResolverAdapter.java b/designer-base/src/main/java/com/fr/design/formula/VariableResolverAdapter.java index e5d1545b7b..e03fa0e186 100644 --- a/designer-base/src/main/java/com/fr/design/formula/VariableResolverAdapter.java +++ b/designer-base/src/main/java/com/fr/design/formula/VariableResolverAdapter.java @@ -3,10 +3,10 @@ package com.fr.design.formula; import com.fr.base.Parameter; import com.fr.base.ParameterConfig; import com.fr.design.DesignModelAdapter; +import com.fr.general.web.ParameterConstants; import com.fr.plugin.ExtraClassManager; import com.fr.script.ScriptConstants; import com.fr.stable.ArrayUtils; -import com.fr.stable.Constants; import com.fr.stable.fun.BuiltInParametersProvider; import com.fr.stable.script.CalculatorProvider; @@ -15,91 +15,93 @@ import java.util.List; import java.util.Set; public abstract class VariableResolverAdapter implements VariableResolver { - private static final int TABLE_DATA_PARA = 0; - private static final int REPORT_DATA_PARA = 1; + private static final int TABLE_DATA_PARA = 0; + private static final int REPORT_DATA_PARA = 1; /** * 获取模板内置的一些参数 * * @return 内置参数 */ - public String[] resolveCurReportVariables() { - String [] variables = new String[] { ScriptConstants.SUMMARY_TAG + "page_number", - ScriptConstants.SUMMARY_TAG + "totalPage_number", - // 下面是权限相关的参数 - ScriptConstants.DETAIL_TAG + Constants.P.PRIVILEGE_USERNAME, ScriptConstants.DETAIL_TAG + Constants.P.PRIVILEGE_AUTHORITY, - ScriptConstants.DETAIL_TAG + Constants.P.PRIVILEGE_DEPARTMETN_AND_POST, - // 空值参数 - "NULL", "NOFILTER", - // request变量 - CalculatorProvider.REPORT_NAME, CalculatorProvider.FORMLET_NAME, CalculatorProvider.SERVLET_URL, CalculatorProvider.SERVER_SCHEMA, CalculatorProvider.SERVER_NAME, - CalculatorProvider.SERVER_PORT, CalculatorProvider.SERVER_URL, CalculatorProvider.CONTEXT_PATH, CalculatorProvider.SESSION_ID - }; - Set set = ExtraClassManager.getInstance().getArray(BuiltInParametersProvider.XML_TAG); - for (BuiltInParametersProvider provider : set) { - return (String[]) ArrayUtils.addAll(variables, new String []{ - ScriptConstants.DETAIL_TAG + provider.getParametersName() - }); - } - return variables; - } - - private Parameter[] getCurrentModeParameters(int type) { - Parameter[] parameters = null; - if(DesignModelAdapter.getCurrentModelAdapter() == null) { - parameters = new Parameter[0]; - } else { - if(type == TABLE_DATA_PARA) { - parameters = DesignModelAdapter.getCurrentModelAdapter().getTableDataParameters(); - } else if(type == REPORT_DATA_PARA){ - parameters = DesignModelAdapter.getCurrentModelAdapter().getReportParameters(); - } - } - return parameters; - } + public String[] resolveCurReportVariables() { + String[] variables = new String[]{ + ScriptConstants.SUMMARY_TAG + "page_number", + ScriptConstants.SUMMARY_TAG + "totalPage_number", + // 下面是权限相关的参数 + ScriptConstants.DETAIL_TAG + ParameterConstants.FINE_USERNAME, + ScriptConstants.DETAIL_TAG + ParameterConstants.FINE_ROLE, + ScriptConstants.DETAIL_TAG + ParameterConstants.FINE_POSITION, + // 空值参数 + "NULL", "NOFILTER", + // request变量 + CalculatorProvider.REPORT_NAME, CalculatorProvider.FORMLET_NAME, CalculatorProvider.SERVLET_URL, CalculatorProvider.SERVER_SCHEMA, CalculatorProvider.SERVER_NAME, + CalculatorProvider.SERVER_PORT, CalculatorProvider.SERVER_URL, CalculatorProvider.CONTEXT_PATH, CalculatorProvider.SESSION_ID + }; + Set set = ExtraClassManager.getInstance().getArray(BuiltInParametersProvider.XML_TAG); + for (BuiltInParametersProvider provider : set) { + return (String[]) ArrayUtils.addAll(variables, new String[]{ + ScriptConstants.DETAIL_TAG + provider.getParametersName() + }); + } + return variables; + } + + private Parameter[] getCurrentModeParameters(int type) { + Parameter[] parameters = null; + if (DesignModelAdapter.getCurrentModelAdapter() == null) { + parameters = new Parameter[0]; + } else { + if (type == TABLE_DATA_PARA) { + parameters = DesignModelAdapter.getCurrentModelAdapter().getTableDataParameters(); + } else if (type == REPORT_DATA_PARA) { + parameters = DesignModelAdapter.getCurrentModelAdapter().getReportParameters(); + } + } + return parameters; + } /** * 获取数据集参数 * * @return 所有参数 */ - public String[] resolveTableDataParameterVariables() { - Parameter[] parameters = getCurrentModeParameters(TABLE_DATA_PARA); - String[] parameterNames = new String[parameters.length]; - for (int i = 0; i < parameters.length; i++) { - parameterNames[i] = ScriptConstants.DETAIL_TAG + parameters[i].getName(); - } - return parameterNames; - } + public String[] resolveTableDataParameterVariables() { + Parameter[] parameters = getCurrentModeParameters(TABLE_DATA_PARA); + String[] parameterNames = new String[parameters.length]; + for (int i = 0; i < parameters.length; i++) { + parameterNames[i] = ScriptConstants.DETAIL_TAG + parameters[i].getName(); + } + return parameterNames; + } /** * 获取模板参数 * * @return 所有参数 */ - public String[] resolveReportParameterVariables() { - Parameter[] parameters = getCurrentModeParameters(REPORT_DATA_PARA); - String[] parameterNames = new String[parameters.length]; - for (int i = 0; i < parameters.length; i++) { - parameterNames[i] = ScriptConstants.DETAIL_TAG + parameters[i].getName(); - } - return parameterNames; - } + public String[] resolveReportParameterVariables() { + Parameter[] parameters = getCurrentModeParameters(REPORT_DATA_PARA); + String[] parameterNames = new String[parameters.length]; + for (int i = 0; i < parameters.length; i++) { + parameterNames[i] = ScriptConstants.DETAIL_TAG + parameters[i].getName(); + } + return parameterNames; + } - /** - * 获取全局参数 + /** + * 获取全局参数 * * @return 所有参数 - */ - public String[] resolveGlobalParameterVariables() { - // 加上全局的参数 - Parameter[] globalParameters = ParameterConfig.getInstance().getGlobalParameters(); + */ + public String[] resolveGlobalParameterVariables() { + // 加上全局的参数 + Parameter[] globalParameters = ParameterConfig.getInstance().getGlobalParameters(); - List variablesList = new ArrayList(); - for (int i = 0; i < (globalParameters == null ? 0 : globalParameters.length); i++) { - variablesList.add(ScriptConstants.DETAIL_TAG + (globalParameters[i]).getName()); - } + List variablesList = new ArrayList(); + for (int i = 0; i < (globalParameters == null ? 0 : globalParameters.length); i++) { + variablesList.add(ScriptConstants.DETAIL_TAG + (globalParameters[i]).getName()); + } - return variablesList.toArray(new String[variablesList.size()]); - } + return variablesList.toArray(new String[variablesList.size()]); + } } \ No newline at end of file diff --git a/designer-base/src/main/java/com/fr/design/mainframe/DesignerFrame.java b/designer-base/src/main/java/com/fr/design/mainframe/DesignerFrame.java index 3636a18daf..0fb8380905 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/DesignerFrame.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/DesignerFrame.java @@ -1009,16 +1009,7 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta */ private void activeTemplate(FILE tplFile, JTemplate jt) { // 如果该模板已经打开,则进行激活就可以了 - String fullName = StableUtils.pathJoin(new String[]{ProjectConstants.REPORTLETS_NAME, tplFile.getName()}); - if (tplFile instanceof FileNodeFILE) { - fullName = ((FileNodeFILE) tplFile).getEnvPath() + "/" + tplFile.getPath(); - } - // 如果是从文件夹打开的文件,不是从设计器文件树打开的文件,则直接取path就行 - if (tplFile instanceof FileFILE) { - fullName = tplFile.getPath(); - } - fullName = OperatingSystem.isWindows() ? fullName.replaceAll("/", "\\\\") : fullName.replaceAll("\\\\", "/"); - int index = HistoryTemplateListPane.getInstance().contains(fullName); + int index = HistoryTemplateListPane.getInstance().contains(tplFile.getPath()); List> historyList = HistoryTemplateListPane.getInstance().getHistoryList(); if (index != -1) { historyList.get(index).activeJTemplate(index, jt); diff --git a/designer-base/src/main/java/com/fr/design/mainframe/DesignerFrameFileDealerPane.java b/designer-base/src/main/java/com/fr/design/mainframe/DesignerFrameFileDealerPane.java index fddf359c53..acaa2850bd 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/DesignerFrameFileDealerPane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/DesignerFrameFileDealerPane.java @@ -36,6 +36,7 @@ import com.fr.io.utils.ResourceIOUtils; import com.fr.stable.CoreConstants; import com.fr.stable.StableUtils; import com.fr.stable.project.ProjectConstants; +import com.fr.workspace.WorkContext; import javax.swing.*; import javax.swing.event.DocumentEvent; @@ -50,35 +51,35 @@ import java.util.Map; import java.util.Set; public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarStateChangeListener, ResponseDataSourceChange { - + private static final String FILE = "file"; - + private static volatile DesignerFrameFileDealerPane THIS; - + private CardLayout card; - + private JPanel cardPane; - + private FileOperations selectedOperation; - + private UIToolbar toolBar; - + private OpenReportAction openReportAction = new OpenReportAction(); - + private RefreshTreeAction refreshTreeAction = new RefreshTreeAction(); - + private OpenFolderAction openFolderAction = new OpenFolderAction(); - + private RenameAction renameAction = new RenameAction(); - + private DelFileAction delFileAction = new DelFileAction(); - - + + /** * 刷新 */ public void refresh() { - + selectedOperation.refresh(); } @@ -93,9 +94,9 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt } return THIS; } - + private DesignerFrameFileDealerPane() { - + setLayout(new BorderLayout()); toolBar = ToolBarDef.createJToolBar(); toolBar.setBorder(BorderFactory.createMatteBorder(0, 0, 1, 0, UIConstants.TOOLBAR_BORDER_COLOR)); @@ -106,23 +107,23 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt parent.setBorder(BorderFactory.createEmptyBorder(3, 0, 4, 0)); tooBarPane.add(parent, BorderLayout.CENTER); tooBarPane.add(new UIMenuHighLight(), BorderLayout.SOUTH); - + add(tooBarPane, BorderLayout.NORTH); cardPane = new JPanel(card = new CardLayout()); cardPane.add(TemplateTreePane.getInstance(), FILE); - + selectedOperation = TemplateTreePane.getInstance(); card.show(cardPane, FILE); - + TemplateTreePane.getInstance().setToobarStateChangeListener(this); - + add(cardPane, BorderLayout.CENTER); stateChange(); } - - + + public final void setCurrentEditingTemplate(JTemplate jt) { - + DesignModelAdapter.setCurrentModelAdapter(jt == null ? null : jt.getModel()); fireDSChanged(); TableDataTreePane.getInstance(DesignModelAdapter.getCurrentModelAdapter()); @@ -132,37 +133,40 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt if (BaseUtils.isAuthorityEditing()) { RolesAlreadyEditedPane.getInstance().refreshDockingView(); } - + jt.setComposite(); jt.refreshToolArea(); jt.fireJTemplateOpened(); jt.requestFocus(); jt.revert(); - + FRContext.getLogger().info("\"" + jt.getEditingFILE().getName() + "\"" + Inter.getLocText("LOG-Has_Been_Openned") + "!"); } - + /** * 刷新菜单 */ public void refreshDockingView() { - + ToolBarDef toolbarDef = new ToolBarDef(); toolbarDef.addShortCut(openReportAction, refreshTreeAction); - toolbarDef.addShortCut(openFolderAction, renameAction); + if (WorkContext.getCurrent().isLocal()) { + toolbarDef.addShortCut(openFolderAction, renameAction); + } toolbarDef.addShortCut(delFileAction); Set extraShortCuts = ExtraDesignClassManager.getInstance().getExtraShortCuts(); for (ShortCut shortCut : extraShortCuts) { toolbarDef.addShortCut(shortCut); } - + toolbarDef.updateToolBar(toolBar); refreshActions(); + refresh(); } - - + + private void refreshActions() { - + openReportAction.setEnabled(false); refreshTreeAction.setEnabled(true); openFolderAction.setEnabled(false); @@ -170,123 +174,123 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt delFileAction.setEnabled(false); this.repaint(); } - + /** * 响应数据集改变 */ public void fireDSChanged() { - + fireDSChanged(new HashMap()); } - + /** * 响应数据集改变 * * @param map 改变名字的数据集 */ public void fireDSChanged(Map map) { - + DesignTableDataManager.fireDSChanged(map); } - - + + /* * Open Report Action */ private class OpenReportAction extends UpdateAction { - + public OpenReportAction() { - + this.setName(KeySetUtils.OPEN_TEMPLATE.getMenuKeySetName()); this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/buttonicon/open.png")); } - + @Override public void actionPerformed(ActionEvent evt) { - + selectedOperation.openSelectedReport(); } - + } - + private class OpenFolderAction extends UpdateAction { - + public OpenFolderAction() { - + this.setName(Inter.getLocText("FR-Designer_Show_in_Containing_Folder")); this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_file/view_folder.png")); } - + @Override public void actionPerformed(ActionEvent evt) { - + selectedOperation.openContainerFolder(); } } - + /* * 刷新ReportletsTree */ private class RefreshTreeAction extends UpdateAction { - + public RefreshTreeAction() { - + this.setName(Inter.getLocText("FR-Designer_Refresh")); this.setSmallIcon(UIConstants.REFRESH_ICON); } - + @Override public void actionPerformed(ActionEvent evt) { - + selectedOperation.refresh(); stateChange(); } } - + /* * 重命名文件 */ private class RenameAction extends UpdateAction { - + public RenameAction() { - + this.setName(Inter.getLocText("FR-Designer_Rename")); this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/data/source/rename.png")); } - + @Override public void actionPerformed(ActionEvent evt) { - + new RenameDialog(); MutilTempalteTabPane.getInstance().repaint(); } - + } - + /* * 删除指定文件 */ private class DelFileAction extends UpdateAction { - + public DelFileAction() { - + this.setName(Inter.getLocText("FR-Designer_Remove")); this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/data/source/delete.png")); } - + @Override public void actionPerformed(ActionEvent evt) { - + selectedOperation.deleteFile(); } } - + /** * 按钮状态改变 */ @Override public void stateChange() { - + if (selectedOperation.getSelectedTemplatePath() != null) { openReportAction.setEnabled(true); renameAction.setEnabled(true); @@ -297,7 +301,7 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt delFileAction.setEnabled(false); } openFolderAction.setEnabled(containsFolderNums() + seletedTemplateNums() != 0); - + refreshTreeAction.setEnabled(true); if (containsFolderNums() > 0 && (containsFolderNums() + seletedTemplateNums() > 1)) { refreshActions(); @@ -308,22 +312,22 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt renameAction.setEnabled(false); delFileAction.setEnabled(true); } - + } - + /** * 是否包含文件夹 * * @return */ - + private int containsFolderNums() { - + TemplateFileTree fileTree = TemplateTreePane.getInstance().getTemplateFileTree(); if (fileTree.getSelectionPaths() == null) { return 0; } - + //选择的包含文件和文件夹的数目 if (fileTree.getSelectionPaths().length == 0) { return 0; @@ -331,53 +335,53 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt //所有的num减去模板的num,得到文件夹的num return fileTree.getSelectionPaths().length - fileTree.getSelectedTemplatePaths().length; } - + /** * 是否选择了多个模板 * * @return */ private int seletedTemplateNums() { - + TemplateFileTree fileTree = TemplateTreePane.getInstance().getTemplateFileTree(); if (fileTree.getSelectionPaths() == null) { return 0; } - + return fileTree.getSelectedTemplatePaths().length; } - - + + // js: 重命名对话框,模仿Eclipse的重命名,支持快捷键F2,Enter,ESC private class RenameDialog { - + private UITextField jt; - + private String userInput; - + private String oldName; - + private UILabel hintsLabel; - + private UIButton confirmButton; - + private JDialog jd; - + private String suffix; - + public RenameDialog() { - + final String reportPath = selectedOperation.getSelectedTemplatePath(); if (reportPath == null) { return; } - + final FileNodeFILE nodeFile = new FileNodeFILE(new FileNode(StableUtils.pathJoin(ProjectConstants.REPORTLETS_NAME, reportPath), false)); final String path = nodeFile.getPath(); oldName = nodeFile.getName(); suffix = oldName.substring(oldName.lastIndexOf(CoreConstants.DOT), oldName.length()); oldName = oldName.replaceAll(suffix, ""); - + jd = new JDialog(); jd.setLayout(new GridLayout(2, 2)); jd.setModal(true); @@ -388,14 +392,14 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt jt.getDocument().addDocumentListener(getdoDocumentListener()); jt.selectAll(); jt.setPreferredSize(new Dimension(150, 20)); - + JPanel newNamePanel = new JPanel(); newNamePanel.setLayout(new BoxLayout(newNamePanel, BoxLayout.X_AXIS)); newNamePanel.add(Box.createHorizontalGlue()); newNamePanel.add(newNameLabel); newNamePanel.add(Box.createHorizontalStrut(5)); jd.add(newNamePanel); - + JPanel jtPanel = new JPanel(); jtPanel.setLayout(new BoxLayout(jtPanel, BoxLayout.Y_AXIS)); JPanel containJt = new JPanel(new BorderLayout()); @@ -405,46 +409,46 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt jtPanel.add(containJt); jtPanel.add(Box.createVerticalGlue()); jd.add(jtPanel); - + addUITextFieldListener(nodeFile, path); - + hintsLabel = new UILabel(); hintsLabel.setBounds(20, 50, 250, 30); hintsLabel.setMaximumSize(new Dimension(200, 30)); hintsLabel.setHorizontalAlignment(SwingConstants.RIGHT); hintsLabel.setForeground(Color.RED); hintsLabel.setVisible(false); - + confirmButton = new UIButton(Inter.getLocText("FR-Designer_Confirm")); confirmButton.setPreferredSize(new Dimension(80, 25)); confirmButton.setMinimumSize(new Dimension(80, 25)); confirmButton.setMaximumSize(new Dimension(80, 25)); confirmButton.addActionListener(new ActionListener() { - + public void actionPerformed(ActionEvent e) { - + confirmClose(nodeFile, path); } }); - + UIButton cancelButton = new UIButton(Inter.getLocText("FR-Designer_Cancel")); cancelButton.setPreferredSize(new Dimension(80, 25)); cancelButton.setMinimumSize(new Dimension(80, 25)); cancelButton.setMaximumSize(new Dimension(80, 25)); - + cancelButton.addActionListener(new ActionListener() { - + public void actionPerformed(ActionEvent e) { - + jd.dispose(); } }); - + JPanel hintsPanel = new JPanel(); hintsPanel.setLayout(new BorderLayout()); hintsPanel.add(hintsLabel, BorderLayout.EAST); jd.add(hintsLabel); - + JPanel btPanel = new JPanel(new BorderLayout()); btPanel.setLayout(new BoxLayout(btPanel, BoxLayout.X_AXIS)); btPanel.add(Box.createHorizontalGlue()); @@ -453,7 +457,7 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt btPanel.add(cancelButton); btPanel.add(Box.createHorizontalStrut(20)); jd.add(btPanel); - + jd.setSize(380, 200); jd.setTitle(Inter.getLocText("FR-Designer_Rename")); jd.setResizable(false); @@ -463,24 +467,24 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt GUICoreUtils.centerWindow(jd); jd.setVisible(true); } - + public void confirmClose(FileNodeFILE nodeFile, String path) { - + userInput = userInput == null ? oldName : userInput; String oldPath = path.replaceAll("/", "\\\\"); String newPath = path.replace(nodeFile.getName(), userInput + suffix); renameTemplateInMemory(nodeFile, userInput + suffix, oldName + suffix); DesignerEnvManager.getEnvManager().replaceRecentOpenedFilePath(oldPath, newPath.replaceAll("/", "\\\\")); - + //模版重命名 ResourceIOUtils.renameTo(path, newPath); selectedOperation.refresh(); DesignerContext.getDesignerFrame().setTitle(); jd.dispose(); } - + private void renameTemplateInMemory(FILE tplFile, String newName, String oldName) { - + JTemplate dPane = getSpecialTemplateByFILE(tplFile); if (dPane == null) { return; @@ -488,24 +492,24 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt FILE renameFile = dPane.getEditingFILE(); renameFile.setPath(renameFile.getPath().replace(oldName, newName)); } - + // 增加enter以及esc快捷键的支持 public void addUITextFieldListener(final FileNodeFILE nodeFile, final String path) { - + jt.addKeyListener(new KeyAdapter() { - + public void keyPressed(KeyEvent e) { - + if (e.getKeyCode() == KeyEvent.VK_ESCAPE) { jd.dispose(); } } }); - + jt.addKeyListener(new KeyAdapter() { - + public void keyPressed(KeyEvent e) { - + if (e.getKeyCode() == KeyEvent.VK_ENTER) { if (confirmButton.isEnabled()) { confirmClose(nodeFile, path); @@ -513,35 +517,35 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt } } }); - + } - + // UITextField的输入监听 public DocumentListener getdoDocumentListener() { - + DocumentListener dl = new DocumentListener() { - + public void changedUpdate(DocumentEvent e) { - + isNameAlreadyExist(); } - + public void insertUpdate(DocumentEvent e) { - + isNameAlreadyExist(); } - + public void removeUpdate(DocumentEvent e) { - + isNameAlreadyExist(); } }; - + return dl; } - + private void isNameAlreadyExist() { - + userInput = jt.getText().trim(); if (selectedOperation.isNameAlreadyExist(userInput, oldName, suffix)) { jt.selectAll(); @@ -555,13 +559,13 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt } } } - + /** * @param tplFile * @return 内存中的template重命名一下 */ private JTemplate getSpecialTemplateByFILE(FILE tplFile) { - + HistoryTemplateListPane historyHandle = HistoryTemplateListPane.getInstance(); if (ComparatorUtils.equals(historyHandle.getCurrentEditingTemplate().getEditingFILE(), tplFile)) { return historyHandle.getCurrentEditingTemplate(); @@ -573,5 +577,5 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt } return null; } - + } \ No newline at end of file diff --git a/designer-base/src/main/java/com/fr/design/mainframe/TemplatePane.java b/designer-base/src/main/java/com/fr/design/mainframe/TemplatePane.java index e3107c3b43..e9bdce2675 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/TemplatePane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/TemplatePane.java @@ -20,6 +20,7 @@ import com.fr.stable.EnvChangedListener; import com.fr.workspace.WorkContext; import com.fr.workspace.WorkContextCallback; import com.fr.workspace.Workspace; +import com.fr.workspace.connect.AuthException; import javax.swing.*; import java.awt.*; @@ -30,37 +31,37 @@ import java.awt.event.MouseListener; //TODO: august TemplatePane和TemplateTreePane最好合并成一个类 public class TemplatePane extends JPanel implements MouseListener { - + private static final long NUM = 1L; - + private static int NUM200 = 200; - + public static TemplatePane getInstance() { - + return HOLDER.singleton; } - + private static class HOLDER { - + private static TemplatePane singleton = new TemplatePane(); } - + private static final long serialVersionUID = 2108412478281713143L; - + public static final int HEIGHT = 23;// 最好和日志的高度统一 用同一个变量 - + private static javax.swing.Icon leftIcon = BaseUtils.readIcon("/com/fr/design/images/docking/left.png"); - + private static javax.swing.Icon rightIcon = BaseUtils.readIcon("/com/fr/design/images/docking/right.png"); - + private boolean isExpanded = false; - + private UIButton editButton; - + private UILabel envLabel; - + private TemplatePane() { - + super(); this.initComponents(); this.setFocusable(true); @@ -69,24 +70,24 @@ public class TemplatePane extends JPanel implements MouseListener { TemplateTreePane.getInstance().setVisible(isExpanded); TemplateTreePane.getInstance().setVisible(true); } - + private void initComponents() { - + GeneralContext.addEnvChangedListener(new EnvChangedListener() { - + public void envChanged() { - + setJLabel(DesignerEnvManager.getEnvManager().getCurEnvName()); } }); this.setLayout(new BorderLayout(25, 0)); editButton = new UIButton(BaseUtils.readIcon("/com/fr/design/images/control/control-center2.png")) { - + private static final long serialVersionUID = NUM; - + @Override public Point getToolTipLocation(MouseEvent event) { - + return new Point(25, 2); } }; @@ -98,9 +99,9 @@ public class TemplatePane extends JPanel implements MouseListener { this.add(new UILabel(" "), BorderLayout.WEST); this.add(editButton, BorderLayout.EAST); editButton.addActionListener(new ActionListener() { - + public void actionPerformed(ActionEvent evt) { - + editItems(); } }); @@ -109,25 +110,25 @@ public class TemplatePane extends JPanel implements MouseListener { setJLabel(DesignerEnvManager.getEnvManager().getCurEnvName()); this.add(envLabel, BorderLayout.CENTER); } - + /** * 是否可扩展 * * @return 同上 */ public boolean IsExpanded() { - + return this.isExpanded; } - + public void setExpand(boolean b) { - + this.isExpanded = b; this.repaint(); } - + private boolean envListOkAction(EnvListPane envListPane) { - + final String selectedName = envListPane.updateEnvManager(); DesignerEnvManager envManager = DesignerEnvManager.getEnvManager(); DesignerWorkspaceInfo selectedEnv = envManager.getWorkspaceInfo(selectedName); @@ -135,13 +136,11 @@ public class TemplatePane extends JPanel implements MouseListener { try { Workspace workspace = DesignerWorkspaceGenerator.generate(selectedEnv); if (workspace == null) { - JOptionPane.showMessageDialog( - DesignerContext.getDesignerFrame(), - Inter.getLocText(new String[]{"FR-Designer_M-SwitchWorkspace", "Failed"})); + JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText(new String[]{"FR-Designer_M-SwitchWorkspace", "Failed"}), + null, 0, UIManager.getIcon("OptionPane.errorIcon")); return false; } WorkContext.switchTo(workspace, new WorkContextCallback() { - @Override public void done() { DesignerEnvManager.getEnvManager().setCurEnvName(selectedName); @@ -153,8 +152,8 @@ public class TemplatePane extends JPanel implements MouseListener { template.refreshToolArea(); } setJLabel(selectedName); - } catch (Exception e) { - JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText(new String[]{"M-SwitchWorkspace", "Failed"}), + } catch (AuthException e) { + JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText(new String[]{"Fine-Designer_Basic_Remote_Connect_Auth_Failed", "Failed"}), null, 0, UIManager.getIcon("OptionPane.errorIcon")); return false; } @@ -165,33 +164,33 @@ public class TemplatePane extends JPanel implements MouseListener { } return true; } - + /** * 编辑items */ public void editItems() { - + final EnvListPane envListPane = new EnvListPane(); final BasicDialog envListDialog = envListPane.showWindow(SwingUtilities.getWindowAncestor(DesignerContext.getDesignerFrame())); - + envListPane.populateEnvManager(envLabel.getText()); envListDialog.addDialogActionListener(new DialogActionAdapter() { - + public void doOk() { - + envListOkAction(envListPane); } - + public void doCancel() { - + envListDialog.setVisible(false); } }); envListDialog.setVisible(true); } - + private void setJLabel(String name) { - + DesignerWorkspaceInfo config = DesignerEnvManager.getEnvManager().getWorkspaceInfo(name); if (config != null) { switch (config.getType()) { @@ -205,26 +204,26 @@ public class TemplatePane extends JPanel implements MouseListener { } } } - + envLabel.setText(name); envLabel.repaint(); } - + @Override public Dimension getPreferredSize() { - + return new Dimension(250, HEIGHT); } - + @Override public void paintComponent(Graphics g) { - + super.paintComponent(g); paintBackgroundIcon(g); } - + private void paintBackgroundIcon(Graphics g) { - + int w = this.getWidth(); int h = this.getHeight(); Graphics2D g2d = (Graphics2D) g; @@ -239,9 +238,9 @@ public class TemplatePane extends JPanel implements MouseListener { g2d.drawLine(w - 1, 2, w - 1, h - 1); Icon icon = !isExpanded ? leftIcon : rightIcon; icon.paintIcon(this, g2d, 4, 4); - + } - + /** * 鼠标点击 * @@ -249,9 +248,9 @@ public class TemplatePane extends JPanel implements MouseListener { */ @Override public void mouseClicked(MouseEvent e) { - + } - + /** * 鼠标按下 * @@ -259,7 +258,7 @@ public class TemplatePane extends JPanel implements MouseListener { */ @Override public void mousePressed(MouseEvent e) { - + if (e.getX() < NUM200) { isExpanded = !isExpanded; TemplateTreePane.getInstance().setVisible(isExpanded); @@ -267,7 +266,7 @@ public class TemplatePane extends JPanel implements MouseListener { DesignerEnvManager.getEnvManager().setTemplateTreePaneExpanded(isExpanded); } } - + /** * 鼠标放开 * @@ -275,9 +274,9 @@ public class TemplatePane extends JPanel implements MouseListener { */ @Override public void mouseReleased(MouseEvent e) { - + } - + /** * 鼠标进入 * @@ -285,9 +284,9 @@ public class TemplatePane extends JPanel implements MouseListener { */ @Override public void mouseEntered(MouseEvent e) { - + } - + /** * 鼠标离开 * @@ -295,33 +294,33 @@ public class TemplatePane extends JPanel implements MouseListener { */ @Override public void mouseExited(MouseEvent e) { - + } - + /** * 处理异常 */ public void dealEvnExceptionWhenStartDesigner() { - + final EnvListPane envListPane = new EnvListPane(); envListPane.populateEnvManager(envLabel.getText()); BasicDialog envListDialog = envListPane.showWindow(SwingUtilities.getWindowAncestor(DesignerContext.getDesignerFrame())); envListDialog.addDialogActionListener(new DialogActionAdapter() { - + public void doOk() { - + if (!envListOkAction(envListPane)) { System.exit(0); } - + } - + public void doCancel() { - + System.exit(0); } }); envListDialog.setVisible(true); } - -} \ No newline at end of file + +} diff --git a/designer-base/src/main/java/com/fr/design/mainframe/loghandler/DesignerLogAppender.java b/designer-base/src/main/java/com/fr/design/mainframe/loghandler/DesignerLogAppender.java index 65cbe2b217..118ea2e321 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/loghandler/DesignerLogAppender.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/loghandler/DesignerLogAppender.java @@ -1,7 +1,6 @@ package com.fr.design.mainframe.loghandler; -import com.fr.general.FRLogLevel; import com.fr.third.apache.log4j.AppenderSkeleton; import com.fr.third.apache.log4j.Level; import com.fr.third.apache.log4j.spi.LoggingEvent; diff --git a/designer-base/src/main/java/com/fr/design/mainframe/loghandler/DesignerLogHandler.java b/designer-base/src/main/java/com/fr/design/mainframe/loghandler/DesignerLogHandler.java index d2e149e91c..c724f38538 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/loghandler/DesignerLogHandler.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/loghandler/DesignerLogHandler.java @@ -1,17 +1,16 @@ package com.fr.design.mainframe.loghandler; import com.fr.base.BaseUtils; -import com.fr.base.FRContext; import com.fr.design.gui.icontainer.UIScrollPane; import com.fr.design.gui.imenu.UIMenuItem; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.general.ComparatorUtils; -import com.fr.general.FRLogLevel; import com.fr.general.Inter; -import com.fr.general.LogRecordTime; import com.fr.general.log.Log4jConfig; -import com.fr.stable.xml.LogRecordTimeProvider; +import com.fr.log.FineLoggerFactory; import com.fr.third.apache.log4j.Level; +import com.fr.third.apache.log4j.spi.LoggingEvent; +import com.fr.third.apache.log4j.spi.ThrowableInformation; import javax.swing.*; import javax.swing.text.BadLocationException; @@ -29,11 +28,13 @@ import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.text.SimpleDateFormat; import java.util.Date; -import java.util.logging.LogRecord; import static com.fr.design.gui.syntax.ui.rtextarea.RTADefaultInputMap.DEFAULT_MODIFIER; public class DesignerLogHandler { + + private static final SimpleDateFormat LOG_SIMPLE_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + protected static final int INFO_INT = Level.INFO.toInt(); protected static final int ERROR_INT = Level.ERROR.toInt(); protected static final int WARN_INT = Level.WARN.toInt(); @@ -67,7 +68,6 @@ public class DesignerLogHandler { public void actionPerformed(ActionEvent e) { logHandlerArea.jTextArea.setText(""); caption.clearMessage(); - DesignerLogImpl.getInstance().clear(); } }); caption.addSelectedListener(new ActionListener() { @@ -84,10 +84,6 @@ public class DesignerLogHandler { public void itemStateChanged(ItemEvent e) { logHandlerArea.jTextArea.setText(""); caption.clearMessage(); - LogRecordTimeProvider[] recorders = DesignerLogImpl.getInstance().getRecorders(); - for (LogRecordTimeProvider logRecordTime : recorders) { - logHandlerArea.printStackTrace(logRecordTime); - } } }; showInfo = new JCheckBoxMenuItem(Inter.getLocText(new String[]{"Display", "Normal", "Info"}), true); @@ -101,7 +97,7 @@ public class DesignerLogHandler { @Override public void actionPerformed(ActionEvent e) { JPopupMenu jPopupMenu = new JPopupMenu(); - + int logLevelInt = Log4jConfig.getInstance().getRootLevel().toInt(); if (logLevelInt <= INFO_INT) { jPopupMenu.add(showInfo); @@ -193,55 +189,52 @@ public class DesignerLogHandler { public void actionPerformed(ActionEvent evt) { resultPane.setText(""); caption.clearMessage(); - DesignerLogImpl.getInstance().clear(); } }); return resultPane; } - public void printStackTrace(LogRecordTimeProvider logRecordTime) { - LogRecord logRecord = logRecordTime.getLogRecord(); - Date date = logRecordTime.getDate(); - int logLevelvalue = logRecord.getLevel().intValue(); - if (logLevelvalue == INFO_INT && showInfo.isSelected()) { - printMessage(logRecord.getMessage(), logLevelvalue, date, logRecord.getThrown()); - } else if (logLevelvalue == ERROR_INT && showError.isSelected()) { - printMessage(logRecord.getMessage(), logLevelvalue, date, logRecord.getThrown()); - } else if (logLevelvalue == WARN_INT && showServer.isSelected()) { - printMessage(logRecord.getMessage(), logLevelvalue, date, logRecord.getThrown()); + public void printStackTrace(LoggingEvent event) { + int intLevel = event.getLevel().toInt(); + Date date = new Date(event.getTimeStamp()); + ThrowableInformation information = event.getThrowableInformation(); + if (intLevel == INFO_INT && showInfo.isSelected()) { + printMessage(event.getRenderedMessage(), intLevel, date, information == null ? null : information.getThrowable()); + } else if (intLevel == ERROR_INT && showError.isSelected()) { + printMessage(event.getRenderedMessage(), intLevel, date, information == null ? null : information.getThrowable()); + } else if (intLevel == WARN_INT && showServer.isSelected()) { + printMessage(event.getRenderedMessage(), intLevel, date, information == null ? null : information.getThrowable()); } - } public void printStackTrace(String message, Level level, Date date) { - int logLevelvalue = level.toInt(); - if (logLevelvalue == INFO_INT && showInfo.isSelected()) { - printMessage(message, logLevelvalue, date); - } else if (logLevelvalue == ERROR_INT && showError.isSelected()) { - printMessage(message, logLevelvalue, date); - } else if (logLevelvalue == WARN_INT && showServer.isSelected()) { - printMessage(message, logLevelvalue, date); + int intLevel = level.toInt(); + if (intLevel == INFO_INT && showInfo.isSelected()) { + printMessage(message, intLevel, date); + } else if (intLevel == ERROR_INT && showError.isSelected()) { + printMessage(message, intLevel, date); + } else if (intLevel == WARN_INT && showServer.isSelected()) { + printMessage(message, intLevel, date); } } - private void printMessage(String message, int logLevelvalue, Date date) { - printMessage(message, logLevelvalue, date, null); + private void printMessage(String message, int intLevel, Date date) { + printMessage(message, intLevel, date, null); } - private void printMessage(String messange, int logLevelvalue, Date date, Throwable e) { - SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - this.log(simpleDateFormat.format(date) + "\n", 0); - String message = swithInter(messange, logLevelvalue); - this.log(message, logLevelvalue); - setMessage(message, logLevelvalue); + private void printMessage(String msg, int intLevel, Date date, Throwable e) { + this.log(LOG_SIMPLE_DATE_FORMAT.format(date) + "\n", 0); + String message = appendLocaleMark(msg, intLevel); + this.log(message, intLevel); + setMessage(message, intLevel); if (e == null) { return; } - StackTraceElement[] stacktraceelement = e.getStackTrace(); - for (int i = 0; i < stacktraceelement.length; i++) { - this.log("\t" + "at " + stacktraceelement[i].toString() + "\n", 0); + StackTraceElement[] traceElements = e.getStackTrace(); + for (int i = 0; i < traceElements.length; i++) { + this.log("\t" + "at " + traceElements[i].toString() + "\n", 0); } } @@ -264,11 +257,11 @@ public class DesignerLogHandler { try { doc.insertString(doc.getLength(), str, attrSet); } catch (BadLocationException e) { - FRContext.getLogger().error(e.getMessage()); + FineLoggerFactory.getLogger().error(e.getMessage()); } } - private String swithInter(String str, int style) { + private String appendLocaleMark(String str, int style) { if (style == ERROR_INT) { str = Inter.getLocText("FR-Designer_Alert") + ":" + str + "\n"; } else if (style == WARN_INT) { @@ -318,14 +311,13 @@ public class DesignerLogHandler { } else if (ComparatorUtils.equals(evt.getActionCommand(), LogHandlerArea.this.clear.getText())) { LogHandlerArea.this.jTextArea.setText(""); caption.clearMessage(); - DesignerLogImpl.getInstance().clear(); } } }; } - public void printRemoteLog(LogRecordTime logRecordTime) { - logHandlerArea.printStackTrace(logRecordTime); + public void printLoggingEvent(LoggingEvent event) { + logHandlerArea.printStackTrace(event); } } \ No newline at end of file diff --git a/designer-base/src/main/java/com/fr/design/mainframe/loghandler/DesignerLogImpl.java b/designer-base/src/main/java/com/fr/design/mainframe/loghandler/DesignerLogImpl.java deleted file mode 100644 index 71009a2966..0000000000 --- a/designer-base/src/main/java/com/fr/design/mainframe/loghandler/DesignerLogImpl.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.fr.design.mainframe.loghandler; - -import com.fr.stable.fun.impl.AbstractLogProvider; -import com.fr.stable.xml.LogRecordTimeProvider; - -import java.util.ArrayList; -import java.util.List; - -/** - * Created by Administrator on 2016/1/11 0011. - */ -public class DesignerLogImpl extends AbstractLogProvider{ - - private static DesignerLogImpl instance = new DesignerLogImpl(); - - public static DesignerLogImpl getInstance(){ - return instance; - } - - private DesignerLogImpl(){ - - } - - private List records = new ArrayList(); - - /** - * 清除内存中的日志记录 - */ - public void clear(){ - records.clear(); - } - - /** - * 获取所有日志信息 - * - * @return 日志信息 - */ - public LogRecordTimeProvider[] getRecorders(){ - return records.toArray(new LogRecordTimeProvider[records.size()]); - } - - @Override - public void record(LogRecordTimeProvider logRecordTime) { - records.add(logRecordTime); - } -} \ No newline at end of file diff --git a/designer-base/src/main/java/com/fr/design/remote/action/RemoteDesignAuthorityManagerAction.java b/designer-base/src/main/java/com/fr/design/remote/action/RemoteDesignAuthorityManagerAction.java index c6fea8618a..c0834af223 100644 --- a/designer-base/src/main/java/com/fr/design/remote/action/RemoteDesignAuthorityManagerAction.java +++ b/designer-base/src/main/java/com/fr/design/remote/action/RemoteDesignAuthorityManagerAction.java @@ -32,7 +32,7 @@ public class RemoteDesignAuthorityManagerAction extends UpdateAction { final AuthorityManagerPane managerPane = new AuthorityManagerPane(); BasicDialog dialog = managerPane.showWindow(DesignerContext.getDesignerFrame()); - + if (!WorkContext.getCurrent().isLocal()) { try { // 远程设计获取全部设计成员的权限列表 @@ -44,12 +44,12 @@ public class RemoteDesignAuthorityManagerAction extends UpdateAction { FineLoggerFactory.getLogger().error(exception.getMessage(), exception); } } - + dialog.addDialogActionListener(new DialogActionAdapter() { - + @Override public void doOk() { - + DesignAuthority[] authorities = managerPane.update(); if (!WorkContext.getCurrent().isLocal()) { boolean success = false; @@ -61,10 +61,10 @@ public class RemoteDesignAuthorityManagerAction extends UpdateAction { FineLoggerFactory.getLogger().info("update remote design authority: " + success); } } - + @Override public void doCancel() { - + super.doCancel(); } }); diff --git a/designer-base/src/main/java/com/fr/design/remote/ui/AuthorityListControlPane.java b/designer-base/src/main/java/com/fr/design/remote/ui/AuthorityListControlPane.java index 23bf0f150a..40bd040222 100644 --- a/designer-base/src/main/java/com/fr/design/remote/ui/AuthorityListControlPane.java +++ b/designer-base/src/main/java/com/fr/design/remote/ui/AuthorityListControlPane.java @@ -18,12 +18,12 @@ import com.fr.design.remote.RemoteDesignAuthorityCreator; import com.fr.design.remote.ui.list.AuthorityList; import com.fr.design.remote.ui.list.AuthorityListCellRenderer; import com.fr.design.utils.gui.GUICoreUtils; -import com.fr.workspace.server.authority.RemoteDesignMember; import com.fr.general.ComparatorUtils; import com.fr.general.Inter; import com.fr.log.FineLoggerFactory; import com.fr.report.DesignAuthority; import com.fr.stable.ArrayUtils; +import com.fr.workspace.server.authority.RemoteDesignMember; import javax.swing.BorderFactory; import javax.swing.DefaultListModel; diff --git a/designer-base/src/main/java/com/fr/design/remote/ui/UserManagerPane.java b/designer-base/src/main/java/com/fr/design/remote/ui/UserManagerPane.java index 816fabb476..97ffdd3b62 100644 --- a/designer-base/src/main/java/com/fr/design/remote/ui/UserManagerPane.java +++ b/designer-base/src/main/java/com/fr/design/remote/ui/UserManagerPane.java @@ -13,12 +13,12 @@ import com.fr.design.remote.ui.list.AddedMemberListCellRender; import com.fr.design.remote.ui.list.AddingMemberList; import com.fr.design.remote.ui.list.AddingMemberListCellRender; import com.fr.design.remote.ui.list.MemberListSelectedChangeListener; -import com.fr.workspace.server.authority.RemoteDesignMember; -import com.fr.workspace.server.authority.decision.DecisionOperator; import com.fr.general.Inter; import com.fr.stable.StringUtils; import com.fr.third.guava.collect.ImmutableList; import com.fr.workspace.WorkContext; +import com.fr.workspace.server.authority.RemoteDesignMember; +import com.fr.workspace.server.authority.decision.DecisionOperator; import javax.swing.BorderFactory; import javax.swing.DefaultListModel; diff --git a/designer-base/src/main/java/com/fr/file/FileFILE.java b/designer-base/src/main/java/com/fr/file/FileFILE.java index 4655ae1f30..decf027f09 100644 --- a/designer-base/src/main/java/com/fr/file/FileFILE.java +++ b/designer-base/src/main/java/com/fr/file/FileFILE.java @@ -1,23 +1,22 @@ package com.fr.file; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.util.ArrayList; - -import javax.swing.Icon; -import javax.swing.filechooser.FileSystemView; - import com.fr.base.io.XMLEncryptUtils; import com.fr.design.gui.itree.filetree.FileComparator; import com.fr.design.gui.itree.filetree.FileTreeIcon; import com.fr.general.ComparatorUtils; -import com.fr.general.FRLogManager; +import com.fr.general.SessionLocalManager; import com.fr.stable.StableUtils; import com.fr.stable.project.ProjectConstants; +import javax.swing.*; +import javax.swing.filechooser.FileSystemView; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.ArrayList; + public class FileFILE implements FILE { private File file; @@ -199,12 +198,11 @@ public class FileFILE implements FILE { if (file == null || !file.exists()) { return null; } - FRLogManager.declareResourceWriteStart(file.getAbsolutePath()); java.io.OutputStream out = null; try { out = new FileOutputStream(file); } catch (Exception e) { - throw FRLogManager.createLogPackedException(e); + throw SessionLocalManager.createLogPackedException(e); } return out; } diff --git a/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/ChartFillStylePane.java b/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/ChartFillStylePane.java index f3a9b8a86c..7ddd89d522 100644 --- a/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/ChartFillStylePane.java +++ b/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/ChartFillStylePane.java @@ -1,10 +1,11 @@ package com.fr.design.mainframe.chart.gui.style; +import com.fr.base.ChartColorMatching; import com.fr.base.ChartPreStyleConfig; import com.fr.base.Utils; import com.fr.chart.base.AttrFillStyle; import com.fr.chart.base.ChartConstants; -import com.fr.chart.base.ChartPreStyle; +import com.fr.chart.base.ChartUtils; import com.fr.design.beans.BasicBeanPane; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.icombobox.UIComboBox; @@ -199,9 +200,9 @@ public class ChartFillStylePane extends BasicBeanPane{ } else if(styleSelectBox.getSelectedIndex() < styleSelectBox.getItemCount() - 1){ ChartPreStyleConfig manager = ChartPreStyleConfig.getInstance(); Object preStyle = manager.getPreStyle(styleSelectBox.getSelectedItem()); - if(preStyle instanceof ChartPreStyle) { - AttrFillStyle def = ((ChartPreStyle) preStyle).getAttrFillStyle(); - def.setFillStyleName(Utils.objectToString(styleSelectBox.getSelectedItem())); + if (preStyle instanceof ChartColorMatching) { + AttrFillStyle def = ChartUtils.chartColorMatching2AttrFillStyle((ChartColorMatching) preStyle); + def.setFillStyleName(Utils.objectToString(styleSelectBox.getSelectedItem())); return def; }else{ condition.setColorStyle(ChartConstants.COLOR_DEFAULT); diff --git a/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/ChartPreFillStylePane.java b/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/ChartPreFillStylePane.java deleted file mode 100644 index 3e7fc1be06..0000000000 --- a/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/ChartPreFillStylePane.java +++ /dev/null @@ -1,97 +0,0 @@ -package com.fr.design.mainframe.chart.gui.style; - -import java.awt.*; - -import com.fr.chart.base.AttrFillStyle; -import com.fr.chart.base.ChartConstants; -import com.fr.design.gui.ilable.UILabel; -import com.fr.design.layout.TableLayout; -import com.fr.design.layout.TableLayoutHelper; -import com.fr.general.Inter; - -/** - * 预定义的图表配色界面, 其中和属性表中ChartFillStylePane 主要的不同就是标签的位置. - * @author kunsnat E-mail:kunsnat@gmail.com - * @version 创建时间:2013-8-21 下午03:16:27 - */ -public class ChartPreFillStylePane extends ChartFillStylePane { - - public ChartPreFillStylePane() { - - } - - protected void initLayout() {// 仅仅是服务器预定 风格界面布局, 和属性表 有所不同. - customPane.setPreferredSize(new Dimension(200, 200)); - colorGradient.setPreferredSize(new Dimension(120, 30)); - - double p = TableLayout.PREFERRED; - double[] columnSize = {p, p }; - double[] rowSize = { p, p, p}; - Component[][] components = new Component[][]{ - new Component[]{new UILabel(" " + Inter.getLocText("ColorMatch")), null}, - new Component[]{null, customPane}, - }; - - this.add(TableLayoutHelper.createTableLayoutPane(components,rowSize,columnSize), BorderLayout.WEST); - } - - public void populateBean(AttrFillStyle condition) { - styleSelectBox.setSelectedIndex(styleSelectBox.getItemCount()-1); - - if(condition == null || condition.getColorStyle() == ChartConstants.COLOR_DEFAULT) { - colorAcc.populateBean(ChartConstants.CHART_COLOR_ARRAY);// 新建时 保持默认样式 - accButton.setSelected(true); - gradientButton.setSelected(false); - cardLayout.show(changeColorSetPane, "acc"); - - colorGradient.getSelectColorPointBtnP1().setColorInner(Color.WHITE); - colorGradient.getSelectColorPointBtnP2().setColorInner(Color.black);// 控件中的位置无效. - } else { - int colorStyle = condition.getColorStyle(); - gradientButton.setSelected(colorStyle == ChartConstants.COLOR_GRADIENT); - accButton.setSelected(colorStyle == ChartConstants.COLOR_ACC); - - int colorSize = condition.getColorSize(); - if(colorSize == 2 && gradientButton.isSelected() ) { - cardLayout.show(changeColorSetPane, "gradient"); - - Color endColor = condition.getColorIndex(1); - Color startColor = condition.getColorIndex(0); - colorGradient.getSelectColorPointBtnP1().setColorInner(startColor); - colorGradient.getSelectColorPointBtnP2().setColorInner(endColor); - colorGradient.repaint(); - } else if(colorSize > 2 && accButton.isSelected()){ - cardLayout.show(changeColorSetPane, "acc"); - - Color[] colors = new Color[colorSize]; - for(int i = 0; i < colorSize; i++) { - colors[i] = condition.getColorIndex(i); - } - colorAcc.populateBean(colors); - } - } - } - - @Override - public AttrFillStyle updateBean() { - AttrFillStyle condition = new AttrFillStyle(); - condition.clearColors(); - - if(gradientButton.isSelected()) { - condition.setColorStyle(ChartConstants.COLOR_GRADIENT); - Color start = colorGradient.getSelectColorPointBtnP1().getColorInner(); - Color end = colorGradient.getSelectColorPointBtnP2().getColorInner(); - condition.addFillColor(start); - condition.addFillColor(end); - } else { - condition.setColorStyle(ChartConstants.COLOR_ACC); - - Color[] colors = colorAcc.updateBean(); - for(int i = 0, length = colors.length; i < length; i++) { - condition.addFillColor(colors[i]); - } - } - - return condition; - } -} \ No newline at end of file diff --git a/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/type/AbstractChartTypePane.java b/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/type/AbstractChartTypePane.java index 5901907622..57a9dd143d 100644 --- a/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/type/AbstractChartTypePane.java +++ b/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/type/AbstractChartTypePane.java @@ -1,12 +1,13 @@ package com.fr.design.mainframe.chart.gui.type; +import com.fr.base.ChartColorMatching; import com.fr.base.ChartPreStyleConfig; import com.fr.base.FRContext; import com.fr.base.background.ColorBackground; import com.fr.chart.base.AttrContents; import com.fr.chart.base.AttrFillStyle; import com.fr.chart.base.ChartConstants; -import com.fr.chart.base.ChartPreStyle; +import com.fr.chart.base.ChartUtils; import com.fr.chart.base.DataSeriesCondition; import com.fr.chart.base.TextAttr; import com.fr.chart.chartattr.Axis; @@ -243,7 +244,7 @@ public abstract class AbstractChartTypePane extends FurtherBasicBeanPane{ if(preStyle == null){ plot.getPlotFillStyle().setColorStyle(ChartConstants.COLOR_DEFAULT); }else{ - AttrFillStyle fillStyle = ((ChartPreStyle)preStyle).getAttrFillStyle(); + AttrFillStyle fillStyle = ChartUtils.chartColorMatching2AttrFillStyle((ChartColorMatching) preStyle); fillStyle.setFillStyleName(name); plot.setPlotFillStyle(fillStyle); } diff --git a/designer-chart/src/main/java/com/fr/design/module/ChartPreFillStylePane.java b/designer-chart/src/main/java/com/fr/design/module/ChartPreFillStylePane.java new file mode 100644 index 0000000000..0d27409a4f --- /dev/null +++ b/designer-chart/src/main/java/com/fr/design/module/ChartPreFillStylePane.java @@ -0,0 +1,165 @@ +package com.fr.design.module; + +import com.fr.base.ChartColorMatching; +import com.fr.design.beans.BasicBeanPane; +import com.fr.design.gui.ibutton.UIButton; +import com.fr.design.gui.ilable.UILabel; +import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.design.layout.TableLayout; +import com.fr.design.layout.TableLayoutHelper; +import com.fr.design.mainframe.chart.gui.style.ChartAccColorPane; +import com.fr.design.style.background.gradient.FixedGradientBar; +import com.fr.general.Inter; + +import javax.swing.JPanel; +import java.awt.BorderLayout; +import java.awt.CardLayout; +import java.awt.Color; +import java.awt.Component; +import java.awt.Dimension; +import java.awt.FlowLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.util.ArrayList; +import java.util.List; + + +/** + * 预定义的图表配色界面. + * @author kunsnat E-mail:kunsnat@gmail.com + * @version 创建时间:2013-8-21 下午03:16:27 + */ +public class ChartPreFillStylePane extends BasicBeanPane { + + private JPanel changeColorSetPane; + private CardLayout cardLayout; + + private UIButton accButton; + private UIButton gradientButton; + + private ChartAccColorPane colorAcc; + private FixedGradientBar colorGradient; + + public ChartPreFillStylePane() { + + initComponents(); + + initListener(); + } + + private void initComponents() { + + JPanel customPane = new JPanel(FRGUIPaneFactory.createBorderLayout()); + + JPanel buttonPane = new JPanel(); + buttonPane.setLayout(new FlowLayout(FlowLayout.LEFT)); + buttonPane.add(accButton = new UIButton(Inter.getLocText("FR-Designer_Chart_Acc_Set"))); + buttonPane.add(gradientButton = new UIButton(Inter.getLocText("FR-Designer_Gradient-Color"))); + customPane.add(buttonPane, BorderLayout.NORTH); + + changeColorSetPane = new JPanel(cardLayout = new CardLayout()); + changeColorSetPane.add(colorGradient = new FixedGradientBar(4, 130), "gradient"); + changeColorSetPane.add(colorAcc = new ChartAccColorPane(), "acc"); + cardLayout.show(changeColorSetPane, "acc"); + customPane.add(changeColorSetPane, BorderLayout.CENTER); + + accButton.setSelected(true); + + customPane.setPreferredSize(new Dimension(200, 200)); + colorGradient.setPreferredSize(new Dimension(120, 30)); + colorGradient.getSelectColorPointBtnP1().setColorInner(Color.WHITE); + colorGradient.getSelectColorPointBtnP2().setColorInner(Color.black); + + double p = TableLayout.PREFERRED; + double[] columnSize = {p, p}; + double[] rowSize = {p, p, p}; + Component[][] components = new Component[][]{ + new Component[]{new UILabel(" " + Inter.getLocText("ColorMatch")), null}, + new Component[]{null, customPane}, + }; + + this.setLayout(new BorderLayout()); + this.add(TableLayoutHelper.createTableLayoutPane(components,rowSize,columnSize), BorderLayout.WEST); + } + + private void initListener() { + + accButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + accButton.setSelected(true); + gradientButton.setSelected(false); + cardLayout.show(changeColorSetPane, "acc"); + } + }); + + gradientButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + gradientButton.setSelected(true); + accButton.setSelected(false); + cardLayout.show(changeColorSetPane, "gradient"); + } + }); + } + + @Override + protected String title4PopupWindow() { + return Inter.getLocText("ServerM-Predefined_Styles"); + } + + public void populateBean(ChartColorMatching condition) { + if (condition == null) { + return; + } + + boolean isGradient = condition.getGradient(); + List colorList = condition.getColorList(); + if (isGradient) { + gradientButton.setSelected(true); + accButton.setSelected(false); + cardLayout.show(changeColorSetPane, "gradient"); + + if (colorList.size() == 2) { + colorGradient.getSelectColorPointBtnP1().setColorInner(colorList.get(0)); + colorGradient.getSelectColorPointBtnP2().setColorInner(colorList.get(1)); + colorGradient.repaint(); + } + } else { + accButton.setSelected(true); + gradientButton.setSelected(false); + cardLayout.show(changeColorSetPane, "acc"); + + if (colorList.size() > 0) { + colorAcc.populateBean(colorList.toArray(new Color[colorList.size()])); + } + } + } + + @Override + public ChartColorMatching updateBean() { + ChartColorMatching chartColorMatching = new ChartColorMatching(); + + List colorList = new ArrayList(); + + if(gradientButton.isSelected()) { + chartColorMatching.setGradient(true); + + Color start = colorGradient.getSelectColorPointBtnP1().getColorInner(); + Color end = colorGradient.getSelectColorPointBtnP2().getColorInner(); + colorList.add(start); + colorList.add(end); + } else { + chartColorMatching.setGradient(false); + + Color[] colors = colorAcc.updateBean(); + for(Color color : colors) { + colorList.add(color); + } + } + + chartColorMatching.setColorList(colorList); + + return chartColorMatching; + } +} \ No newline at end of file diff --git a/designer-chart/src/main/java/com/fr/design/module/ChartPreStyleAction.java b/designer-chart/src/main/java/com/fr/design/module/ChartPreStyleAction.java index 70571338ff..f964c45346 100644 --- a/designer-chart/src/main/java/com/fr/design/module/ChartPreStyleAction.java +++ b/designer-chart/src/main/java/com/fr/design/module/ChartPreStyleAction.java @@ -39,14 +39,10 @@ public class ChartPreStyleAction extends UpdateAction { @Override public void doOk() { pane.updateBean(); -// ChartPreStyleManagerProvider manager = ChartPreStyleServerManager.getProviderInstance(); -// manager.setStyleEditing(null); } @Override public void doCancel() { -// ChartPreStyleManagerProvider manager = ChartPreStyleServerManager.getProviderInstance(); -// manager.setStyleEditing(null); } }); diff --git a/designer-chart/src/main/java/com/fr/design/module/ChartPreStyleManagerPane.java b/designer-chart/src/main/java/com/fr/design/module/ChartPreStyleManagerPane.java index c25782c4ec..e77d175943 100644 --- a/designer-chart/src/main/java/com/fr/design/module/ChartPreStyleManagerPane.java +++ b/designer-chart/src/main/java/com/fr/design/module/ChartPreStyleManagerPane.java @@ -1,8 +1,9 @@ package com.fr.design.module; +import com.fr.base.ChartColorMatching; import com.fr.base.ChartPreStyleConfig; import com.fr.base.Utils; -import com.fr.chart.base.ChartPreStyle; +import com.fr.config.Configuration; import com.fr.design.gui.controlpane.JListControlPane; import com.fr.design.gui.controlpane.NameObjectCreator; import com.fr.design.gui.controlpane.NameableCreator; @@ -10,8 +11,9 @@ import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.DesignerFrame; import com.fr.general.Inter; import com.fr.general.NameObject; -import com.fr.stable.ListMap; import com.fr.stable.Nameable; +import com.fr.transaction.Configurations; +import com.fr.transaction.Worker; import java.util.ArrayList; import java.util.Iterator; @@ -32,7 +34,7 @@ public class ChartPreStyleManagerPane extends JListControlPane { public NameableCreator[] createNameableCreators() { return new NameableCreator[]{ new NameObjectCreator(Inter.getLocText("FR-Designer_PreStyle"), - ChartPreStyle.class, ChartPreStylePane.class) + ChartColorMatching.class, ChartPreStylePane.class) }; } @@ -42,15 +44,14 @@ public class ChartPreStyleManagerPane extends JListControlPane { } public void populateBean() { - ChartPreStyleConfig config = ChartPreStyleConfig.getInstance(); - + ChartPreStyleConfig config = ChartPreStyleConfig.getInstance().mirror(); ArrayList list = new ArrayList(); Iterator keys = config.names(); while(keys.hasNext()) { Object key = keys.next(); - ChartPreStyle value = (ChartPreStyle)config.getPreStyle(key); - + ChartColorMatching value = (ChartColorMatching) config.getPreStyle(key); + list.add(new NameObject(Utils.objectToString(key), value)); } @@ -63,24 +64,33 @@ public class ChartPreStyleManagerPane extends JListControlPane { } public void updateBean() { - ChartPreStyleConfig config = ChartPreStyleConfig.getInstance(); + Configurations.update(new Worker() { + @Override + public void run() { + ChartPreStyleConfig config = ChartPreStyleConfig.getInstance(); - config.setPreStyleMap(new ListMap()); + config.setCurrentStyle(getSelectedName()); - Nameable[] values = this.update(); + Nameable[] values = update(); + config.clearAllPreStyle(); - config.setCurrentStyle(getSelectedName()); - - for(int i = 0; i < values.length; i++) { - Nameable value = values[i]; - config.putPreStyle(value.getName(), ((NameObject)value).getObject()); - } + for(Nameable value : values) { + config.putPreStyle(value.getName(), ((NameObject) value).getObject()); + } + + // 通知报表整个刷新. + DesignerFrame frame = DesignerContext.getDesignerFrame(); + if(frame != null) { + frame.repaint(); + } + } + + @Override + public Class[] targets() { + return new Class[]{ChartPreStyleConfig.class}; + } + }); - // 通知报表整个刷新. - DesignerFrame frame = DesignerContext.getDesignerFrame(); - if(frame != null) { - frame.repaint(); - } } } \ No newline at end of file diff --git a/designer-chart/src/main/java/com/fr/design/module/ChartPreStylePane.java b/designer-chart/src/main/java/com/fr/design/module/ChartPreStylePane.java index d0f4d3136c..1668afcc0e 100644 --- a/designer-chart/src/main/java/com/fr/design/module/ChartPreStylePane.java +++ b/designer-chart/src/main/java/com/fr/design/module/ChartPreStylePane.java @@ -1,16 +1,17 @@ package com.fr.design.module; -import com.fr.chart.base.ChartPreStyle; +import com.fr.base.ChartColorMatching; +import com.fr.chart.base.ChartUtils; import com.fr.chart.chartattr.Bar2DPlot; import com.fr.chart.chartattr.Chart; import com.fr.chart.chartattr.ChartCollection; +import com.fr.chart.chartattr.Plot; import com.fr.design.beans.BasicBeanPane; import com.fr.design.chart.gui.ChartComponent; import com.fr.design.event.UIObserver; import com.fr.design.event.UIObserverListener; import com.fr.design.gui.ilable.BoldFontTextLabel; import com.fr.design.layout.FRGUIPaneFactory; -import com.fr.design.mainframe.chart.gui.style.ChartPreFillStylePane; import com.fr.general.Inter; import javax.swing.JPanel; @@ -25,8 +26,8 @@ import java.awt.FlowLayout; * @author kunsnat E-mail:kunsnat@gmail.com * @version 创建时间:2013-8-20 下午05:02:00 */ -public class ChartPreStylePane extends BasicBeanPane{ - +public class ChartPreStylePane extends BasicBeanPane { + private ChartPreFillStylePane fillStylePane; private ChartComponent chartComponent; @@ -78,28 +79,26 @@ public class ChartPreStylePane extends BasicBeanPane{ } } } - - private void refreshWhenStyleChange(ChartPreStyle preStyle) { -// ChartPreStyleManagerProvider manager = ChartPreStyleServerManager.getProviderInstance(); -// manager.setStyleEditing(preStyle); + + private void refreshWhenStyleChange(ChartColorMatching preStyle) { if(chartComponent != null) { + Plot plot = (Plot) chartComponent.getEditingChart().getBasePlot(); + plot.setPlotFillStyle(ChartUtils.chartColorMatching2AttrFillStyle(preStyle)); chartComponent.reset(); } } @Override - public void populateBean(ChartPreStyle preStyle) { + public void populateBean(ChartColorMatching preStyle) { + + fillStylePane.populateBean(preStyle); - fillStylePane.populateBean(preStyle.getAttrFillStyle()); - refreshWhenStyleChange(preStyle); } @Override - public ChartPreStyle updateBean() { - ChartPreStyle preStyle = new ChartPreStyle(); - preStyle.setAttrFillStyle(fillStylePane.updateBean()); - return preStyle; + public ChartColorMatching updateBean() { + return fillStylePane.updateBean(); } @Override diff --git a/designer-realize/src/main/java/com/fr/design/actions/report/ReportWebAttrAction.java b/designer-realize/src/main/java/com/fr/design/actions/report/ReportWebAttrAction.java index 1c10ca25b6..ef503b8cb2 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/report/ReportWebAttrAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/report/ReportWebAttrAction.java @@ -3,7 +3,6 @@ */ package com.fr.design.actions.report; -import com.fr.config.Configuration; import com.fr.design.actions.JWorkBookAction; import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.DialogActionAdapter; @@ -13,8 +12,9 @@ import com.fr.design.menu.KeySetUtils; import com.fr.design.webattr.ReportWebAttrPane; import com.fr.general.IOUtils; import com.fr.main.TemplateWorkBook; +import com.fr.transaction.CallBackAdaptor; import com.fr.transaction.Configurations; -import com.fr.transaction.Worker; +import com.fr.transaction.WorkerFacade; import com.fr.web.attr.ReportWebAttr; import java.awt.event.ActionEvent; @@ -56,19 +56,17 @@ public class ReportWebAttrAction extends JWorkBookAction { dialog.addDialogActionListener(new DialogActionAdapter() { @Override public void doOk() { - Configurations.update(new Worker() { + Configurations.modify(new WorkerFacade(ReportWebAttr.class) { @Override public void run() { wbTpl.setReportWebAttr(reportWebAttrPane.update()); - jwb.fireTargetModified(); } - + }.addCallBack(new CallBackAdaptor() { @Override - public Class[] targets() { - return new Class[]{ReportWebAttr.class}; + public void afterCommit() { + jwb.fireTargetModified(); } - }); - + })); } }); diff --git a/designer-realize/src/main/java/com/fr/design/actions/server/WidgetManagerAction.java b/designer-realize/src/main/java/com/fr/design/actions/server/WidgetManagerAction.java index b7cb025e8d..f1001eafec 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/server/WidgetManagerAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/server/WidgetManagerAction.java @@ -1,7 +1,6 @@ package com.fr.design.actions.server; import com.fr.base.BaseUtils; -import com.fr.config.Configuration; import com.fr.design.DesignModelAdapter; import com.fr.design.actions.UpdateAction; import com.fr.design.dialog.BasicDialog; @@ -12,10 +11,11 @@ import com.fr.design.menu.MenuKeySet; import com.fr.design.webattr.WidgetManagerPane; import com.fr.form.ui.WidgetInfoConfig; import com.fr.general.Inter; +import com.fr.transaction.CallBackAdaptor; import com.fr.transaction.Configurations; -import com.fr.transaction.Worker; +import com.fr.transaction.WorkerFacade; -import javax.swing.*; +import javax.swing.KeyStroke; import java.awt.event.ActionEvent; public class WidgetManagerAction extends UpdateAction { @@ -45,22 +45,22 @@ public class WidgetManagerAction extends UpdateAction { BasicDialog widgetConfigDialog = widgetManagerPane.showLargeWindow(designerFrame, new DialogActionAdapter() { @Override public void doOk() { - Configurations.update(new Worker() { + + Configurations.modify(new WorkerFacade(WidgetInfoConfig.class) { @Override public void run() { widgetManagerPane.update(widgetManager); + } + }.addCallBack(new CallBackAdaptor() { + @Override + public void afterCommit() { DesignModelAdapter model = DesignModelAdapter.getCurrentModelAdapter(); if (model != null) { model.widgetConfigChanged(); } designerFrame.getSelectedJTemplate().refreshToolArea(); } - - @Override - public Class[] targets() { - return new Class[]{WidgetInfoConfig.class}; - } - }); + })); } }); diff --git a/designer-realize/src/main/java/com/fr/design/dscolumn/SelectedDataColumnPane.java b/designer-realize/src/main/java/com/fr/design/dscolumn/SelectedDataColumnPane.java index aec849e419..fbe7d228a6 100644 --- a/designer-realize/src/main/java/com/fr/design/dscolumn/SelectedDataColumnPane.java +++ b/designer-realize/src/main/java/com/fr/design/dscolumn/SelectedDataColumnPane.java @@ -88,6 +88,7 @@ public class SelectedDataColumnPane extends BasicPane { private static final Pattern COLUMN_NAME_PATTERN = Pattern.compile("[^\\d]"); + /** * 数据集下拉框变动后修改数据列下拉框加载状态的监听器 */ @@ -236,6 +237,8 @@ public class SelectedDataColumnPane extends BasicPane { ps = dsColumn.getParameters(); addListener(); + //重新设置需要加载 + columnNameComboBox.setLoaded(false); } /** diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/cell/model/FileModel.java b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/cell/model/FileModel.java index 70d55b872b..377c2c8ebd 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/cell/model/FileModel.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/cell/model/FileModel.java @@ -22,8 +22,8 @@ public class FileModel extends AlphaCellModel { public FileModel(String name, String filePath) { super(name, null, CellType.FILE); - this.filePath = filePath; - setDescription(AlphaFineHelper.findFolderName(filePath)); + this.filePath = filePath.replaceAll("\\\\", "/"); + setDescription(AlphaFineHelper.findFolderName(this.filePath)); } public String getFilePath() { diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/errorinfo/ErrorInfoLogAppender.java b/designer-realize/src/main/java/com/fr/design/mainframe/errorinfo/ErrorInfoLogAppender.java index 74b36372b5..e3a9532772 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/errorinfo/ErrorInfoLogAppender.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/errorinfo/ErrorInfoLogAppender.java @@ -4,19 +4,19 @@ import com.fr.base.io.IOFile; import com.fr.base.io.XMLReadHelper; import com.fr.config.MarketConfig; import com.fr.design.DesignerEnvManager; -import com.fr.general.FRLogManager; +import com.fr.general.SessionLocalManager; import com.fr.general.Inter; -import com.fr.general.LogDuration; import com.fr.stable.StableUtils; import com.fr.stable.StringUtils; import com.fr.stable.project.ProjectConstants; +import com.fr.stable.web.SessionProvider; import com.fr.stable.xml.XMLPrintWriter; import com.fr.stable.xml.XMLableReader; import com.fr.third.apache.log4j.AppenderSkeleton; import com.fr.third.apache.log4j.Level; import com.fr.third.apache.log4j.spi.LoggingEvent; -import com.fr.web.core.SessionDealWith; -import com.fr.web.core.SessionIDInfor; +import com.fr.web.core.SessionPoolManager; +import com.fr.web.core.TemplateSessionIDInfo; import com.fr.workspace.WorkContext; import java.io.ByteArrayInputStream; @@ -96,18 +96,18 @@ public class ErrorInfoLogAppender extends AppenderSkeleton { } private String readTemplateID() { - LogDuration logDuration = FRLogManager.getSession(); + SessionProvider logDuration = SessionLocalManager.getSession(); if (logDuration == null) { return StringUtils.EMPTY; } String sessionID = logDuration.getSessionID(); - SessionIDInfor infor = SessionDealWith.getSessionIDInfor(sessionID); + TemplateSessionIDInfo infor = SessionPoolManager.getSessionIDInfor(sessionID, TemplateSessionIDInfo.class); if (infor == null) { return StringUtils.EMPTY; } - String bookPath = infor.getBookPath(); + String bookPath = infor.getRelativePath(); // 这个iofile只读一个templateid, 其他以后有需要再读. IOFile file = new IOFile() { @Override diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/socketio/DesignerSocketIO.java b/designer-realize/src/main/java/com/fr/design/mainframe/socketio/DesignerSocketIO.java index 60631eded2..a8d328e168 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/socketio/DesignerSocketIO.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/socketio/DesignerSocketIO.java @@ -4,48 +4,55 @@ import com.fr.config.RemoteConfigEvent; import com.fr.decision.webservice.utils.DecisionServiceConstants; import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.loghandler.DesignerLogHandler; -import com.fr.workspace.server.socket.SocketInfoOperator; import com.fr.event.EventDispatcher; import com.fr.general.Inter; -import com.fr.general.LogRecordTime; -import com.fr.general.LogUtils; import com.fr.log.FineLoggerFactory; +import com.fr.serialization.SerializerHelper; +import com.fr.stable.ArrayUtils; +import com.fr.third.apache.log4j.spi.LoggingEvent; import com.fr.third.guava.base.Optional; import com.fr.workspace.WorkContext; import com.fr.workspace.Workspace; import com.fr.workspace.base.WorkspaceConstants; import com.fr.workspace.engine.server.rpc.netty.RemoteCallClient; +import com.fr.workspace.server.socket.SocketInfoOperator; import io.socket.client.IO; import io.socket.client.Socket; import io.socket.emitter.Emitter; -import javax.swing.JOptionPane; -import javax.swing.UIManager; -import java.io.ByteArrayInputStream; +import javax.swing.*; import java.io.IOException; import java.net.URI; import java.net.URL; public class DesignerSocketIO { + enum Status { + Connected, + Disconnected, + Disconnecting + } + private static Optional socketIO = Optional.absent(); + public static Status status = Status.Disconnected; private static final Emitter.Listener printLog = new Emitter.Listener() { @Override public void call(Object... objects) { - try { - LogRecordTime[] logRecordTimes = LogUtils.readXMLLogRecords(new ByteArrayInputStream((byte[]) objects[0])); - for (LogRecordTime logRecordTime : logRecordTimes) { - DesignerLogHandler.getInstance().printRemoteLog(logRecordTime); + if (ArrayUtils.isNotEmpty(objects)) { + try { + LoggingEvent event = SerializerHelper.deserialize((byte[]) objects[0]); + DesignerLogHandler.getInstance().printLoggingEvent(event); + } catch (Exception e) { + FineLoggerFactory.getLogger().error(e.getMessage(), e); } - } catch (Exception e) { - FineLoggerFactory.getLogger().error(e.getMessage(), e); } } }; public static void close() { if (socketIO.isPresent()) { + status = Status.Disconnecting; socketIO.get().close(); socketIO = Optional.absent(); } @@ -71,11 +78,15 @@ public class DesignerSocketIO { socketIO.get().on(Socket.EVENT_DISCONNECT, new Emitter.Listener() { @Override public void call(Object... objects) { - JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText(new String[]{"Fine-Designer_Basic_Remote_Disconnected"}), - null, 0, UIManager.getIcon("OptionPane.errorIcon")); + if (status != Status.Disconnecting) { + JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText(new String[]{"Fine-Designer_Basic_Remote_Disconnected"}), + null, 0, UIManager.getIcon("OptionPane.errorIcon")); + } + status = Status.Disconnected; } }); socketIO.get().connect(); + status = Status.Connected; } catch (Exception e) { FineLoggerFactory.getLogger().error(e.getMessage(), e); } @@ -92,4 +103,4 @@ public class DesignerSocketIO { DecisionServiceConstants.WEB_SOCKET_TOKEN_NAME, RemoteCallClient.getInstance().getToken()); } -} \ No newline at end of file +} diff --git a/designer-realize/src/main/java/com/fr/design/webattr/WebCssPane.java b/designer-realize/src/main/java/com/fr/design/webattr/WebCssPane.java index cb9909e2ed..ff90867cb6 100644 --- a/designer-realize/src/main/java/com/fr/design/webattr/WebCssPane.java +++ b/designer-realize/src/main/java/com/fr/design/webattr/WebCssPane.java @@ -85,7 +85,7 @@ public class WebCssPane extends BasicPane { if (!"css".equalsIgnoreCase(fileType)) { return; } - localText.setText(file.getPath().substring(1)); + localText.setText(file.getPath()); centerPane.setAddEnabled(true); } diff --git a/designer-realize/src/main/java/com/fr/design/webattr/WebJsPane.java b/designer-realize/src/main/java/com/fr/design/webattr/WebJsPane.java index ac2217c02f..7b7d00667c 100644 --- a/designer-realize/src/main/java/com/fr/design/webattr/WebJsPane.java +++ b/designer-realize/src/main/java/com/fr/design/webattr/WebJsPane.java @@ -173,7 +173,7 @@ public class WebJsPane extends BasicPane { if (!"js".equalsIgnoreCase(fileType)) { return; } - localText.setText(file.getPath().substring(1)); + localText.setText(file.getPath()); editingPane.setAddEnabled(true); } diff --git a/designer-realize/src/main/java/com/fr/design/webattr/WriteToolBarPane.java b/designer-realize/src/main/java/com/fr/design/webattr/WriteToolBarPane.java index f08f6e0cf4..32302e81b7 100644 --- a/designer-realize/src/main/java/com/fr/design/webattr/WriteToolBarPane.java +++ b/designer-realize/src/main/java/com/fr/design/webattr/WriteToolBarPane.java @@ -41,7 +41,7 @@ public class WriteToolBarPane extends AbstractEditToolBarPane { private DragToolBarPane dragToolbarPane; private UIRadioButton topRadioButton = new UIRadioButton(Inter.getLocText("FR-Designer_Top")); private UIRadioButton bottomRadioButton = new UIRadioButton(Inter.getLocText("FR-Designer_Bottom")); - private UILabel sheetShowLocationLabel = new UILabel("sheet" + Inter.getLocText(new String[]{"Label", "Page_Number", "Display position"}) + ":"); + private UILabel sheetShowLocationLabel = new UILabel(Inter.getLocText("Fine-Designer_Sheet_Label_Page_Display_Position")); private UIRadioButton centerRadioButton = new UIRadioButton(Inter.getLocText("FR-Designer_Center_Display")); private UIRadioButton leftRadioButton = new UIRadioButton(Inter.getLocText("FR-Designer_Left_Display")); private UILabel rptShowLocationLabel = new UILabel(Inter.getLocText("FR-Designer_Report_Show_Location") + ":", UILabel.LEFT); diff --git a/designer-realize/src/main/java/com/fr/design/webattr/WriteWebSettingPane.java b/designer-realize/src/main/java/com/fr/design/webattr/WriteWebSettingPane.java index b23e4c3b25..6a35fd24bb 100644 --- a/designer-realize/src/main/java/com/fr/design/webattr/WriteWebSettingPane.java +++ b/designer-realize/src/main/java/com/fr/design/webattr/WriteWebSettingPane.java @@ -56,7 +56,7 @@ public class WriteWebSettingPane extends WebSettingPane { //sheet标签页显示位置 topRadioButton = new UIRadioButton(Inter.getLocText("FR-Designer_Top")); bottomRadioButton = new UIRadioButton(Inter.getLocText("FR-Designer_Bottom")); - sheetShowLocationLabel = new UILabel("sheet" + Inter.getLocText(new String[]{"Label", "Page_Number", "Display position"}) + ":", UILabel.LEFT); + sheetShowLocationLabel = new UILabel(Inter.getLocText("Fine-Designer_Sheet_Label_Page_Display_Position"), UILabel.LEFT); ButtonGroup buttonGroup = new ButtonGroup(); bottomRadioButton.setSelected(true); buttonGroup.add(topRadioButton); diff --git a/designer-realize/src/main/java/com/fr/start/Designer.java b/designer-realize/src/main/java/com/fr/start/Designer.java index 1088f5fdcb..d0b1da68f8 100644 --- a/designer-realize/src/main/java/com/fr/start/Designer.java +++ b/designer-realize/src/main/java/com/fr/start/Designer.java @@ -42,12 +42,12 @@ import com.fr.general.ComparatorUtils; import com.fr.general.Inter; import com.fr.module.Module; import com.fr.module.ModuleContext; -import com.fr.record.analyzer.FineAnalyzer; import com.fr.stable.BuildContext; import com.fr.stable.OperatingSystem; import com.fr.stable.ProductConstants; import com.fr.stable.StableUtils; import com.fr.stable.StringUtils; +import com.fr.stable.lifecycle.LifecycleFatalError; import com.fr.stable.xml.XMLTools; import com.fr.start.fx.SplashFx; import com.fr.start.jni.SplashMac; @@ -56,14 +56,9 @@ import com.fr.start.preload.ImagePreLoader; import com.fr.start.server.ServerTray; import com.fr.workspace.WorkContext; -import javax.swing.JComponent; -import javax.swing.JPanel; +import javax.swing.*; import javax.swing.border.MatteBorder; -import java.awt.Component; -import java.awt.Cursor; -import java.awt.Dimension; -import java.awt.FlowLayout; -import java.awt.Insets; +import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; @@ -96,8 +91,6 @@ public class Designer extends BaseDesigner { */ public static void main(String[] args) { - FineAnalyzer.init(); - BuildContext.setBuildFilePath("/com/fr/stable/build.properties"); @@ -115,7 +108,11 @@ public class Designer extends BaseDesigner { Module designerRoot = ModuleContext.parseRoot("designer-startup.xml"); //传递启动参数 designerRoot.setSingleton(StartupArgs.class, new StartupArgs(args)); - designerRoot.start(); + try { + designerRoot.start(); + } catch (LifecycleFatalError fatal) { + System.exit(0); + } if (WorkContext.getCurrent().isLocal()) { //初始化一下serverTray @@ -197,7 +194,7 @@ public class Designer extends BaseDesigner { if (!BaseUtils.isAuthorityEditing()) { menuDef.addShortCut(SeparatorDef.DEFAULT); - + if (WorkContext.getCurrent().isRoot()) { menuDef.addShortCut(new ServerConfigManagerAction(), new StyleListAction(), new WidgetManagerAction()); if (ActionFactory.getChartPreStyleAction() != null) { diff --git a/designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java b/designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java index 12a7e9c058..0b0563adb4 100644 --- a/designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java +++ b/designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java @@ -48,7 +48,6 @@ import com.fr.design.mainframe.form.FormECDesignerProvider; import com.fr.design.mainframe.form.FormElementCaseDesigner; import com.fr.design.mainframe.form.FormReportComponentComposite; import com.fr.design.mainframe.loghandler.DesignerLogAppender; -import com.fr.design.mainframe.loghandler.DesignerLogImpl; import com.fr.design.mainframe.loghandler.LogMessageBar; import com.fr.design.mainframe.socketio.DesignerSocketIO; import com.fr.design.module.DesignModuleFactory; @@ -91,7 +90,6 @@ import com.fr.report.cell.painter.CellImagePainter; import com.fr.stable.ArrayUtils; import com.fr.stable.ParameterProvider; import com.fr.stable.bridge.StableFactory; -import com.fr.stable.fun.LogProvider; import com.fr.stable.plugin.ExtraDesignClassManagerProvider; import com.fr.stable.script.CalculatorProviderContext; import com.fr.stable.script.ValueConverter; @@ -100,7 +98,7 @@ import com.fr.stable.xml.ObjectXMLWriterFinder; import com.fr.start.BBSGuestPaneProvider; import com.fr.xml.ReportXMLUtils; -import java.awt.Image; +import java.awt.*; import java.awt.image.BufferedImage; import java.util.ArrayList; import java.util.List; @@ -165,7 +163,6 @@ public class DesignerActivator extends Activator implements Prepare { InformationCollector.getInstance().collectStartTime(); ExtraDesignClassManager.getInstance().getFeedback().didFeedback(); - StableFactory.registerMarkedObject(LogProvider.MARK_STRING, DesignerLogImpl.getInstance()); } private static void preLoadPane() { diff --git a/designer-realize/src/main/java/com/fr/start/module/DesignerStartup.java b/designer-realize/src/main/java/com/fr/start/module/DesignerStartup.java index 35e51ff8b6..9d684a8216 100644 --- a/designer-realize/src/main/java/com/fr/start/module/DesignerStartup.java +++ b/designer-realize/src/main/java/com/fr/start/module/DesignerStartup.java @@ -1,14 +1,16 @@ package com.fr.start.module; +import com.fr.design.DesignerEnvManager; import com.fr.design.mainframe.DesignerContext; import com.fr.event.Event; import com.fr.event.Listener; +import com.fr.general.ComparatorUtils; import com.fr.module.Activator; import com.fr.record.analyzer.EnableMetrics; import com.fr.record.analyzer.Metrics; import com.fr.start.Designer; -import com.fr.start.EnvSwitcher; +import com.fr.start.ServerStarter; import com.fr.start.SplashContext; import com.fr.startup.activators.BasicActivator; import com.fr.workspace.Workspace; @@ -31,10 +33,20 @@ public class DesignerStartup extends Activator { startSub(BasicActivator.class); final String[] args = getModule().upFindSingleton(StartupArgs.class).get(); final Designer designer = new Designer(args); - //启动env + startSub(DesignerWorkspaceProvider.class); + //启动env startSub(EnvBasedModule.class); - getRoot().getSingleton(EnvSwitcher.class).switch2LastEnv(); + + if (args != null) { + for (String arg : args) { + if (ComparatorUtils.equals(arg, "demo")) { + DesignerEnvManager.getEnvManager().setCurrentEnv2Default(); + ServerStarter.browserDemoURL(); + break; + } + } + } ExecutorService service = Executors.newSingleThreadExecutor(); registerEnvListener(); service.submit(new Runnable() { diff --git a/designer-realize/src/main/java/com/fr/start/module/DesignerWorkspaceProvider.java b/designer-realize/src/main/java/com/fr/start/module/DesignerWorkspaceProvider.java index 3a22292293..bd8159c6de 100644 --- a/designer-realize/src/main/java/com/fr/start/module/DesignerWorkspaceProvider.java +++ b/designer-realize/src/main/java/com/fr/start/module/DesignerWorkspaceProvider.java @@ -1,10 +1,9 @@ package com.fr.start.module; import com.fr.design.DesignerEnvManager; -import com.fr.general.ComparatorUtils; + import com.fr.module.Activator; import com.fr.start.EnvSwitcher; -import com.fr.start.ServerStarter; /** * Created by juhaoyu on 2018/1/8. @@ -16,21 +15,11 @@ public class DesignerWorkspaceProvider extends Activator { public void start() { //检查环境 DesignerEnvManager.checkNameEnvMap(); - - String[] args = getModule().upFindSingleton(StartupArgs.class).get(); - if (args != null) { - for (String arg : args) { - if (ComparatorUtils.equals(arg, "demo")) { - DesignerEnvManager.getEnvManager().setCurrentEnv2Default(); - ServerStarter.browserDemoURL(); - break; - } - } - } - - getRoot().setSingleton(EnvSwitcher.class, new EnvSwitcher()); + + EnvSwitcher switcher = new EnvSwitcher(); //设置好环境即可,具体跟环境有关的模块会自动调用 - getRoot().getSingleton(EnvSwitcher.class).switch2LastEnv(); + switcher.switch2LastEnv(); + getRoot().setSingleton(EnvSwitcher.class, switcher); }