From b3477fb7f88dae3ae559fd6d8385bd59709a00ae Mon Sep 17 00:00:00 2001 From: kerry Date: Thu, 16 Nov 2017 16:01:03 +0800 Subject: [PATCH 1/7] =?UTF-8?q?REPORT-5692=20[9.0=E4=B8=89=E8=BD=AE?= =?UTF-8?q?=E5=9B=9E=E5=BD=92]=20=E6=9F=A5=E8=AF=A2=E6=8C=89=E9=92=AE?= =?UTF-8?q?=E6=94=B9=E5=90=8D=E5=AD=97=E5=90=8E=EF=BC=8C=E4=B8=8D=E4=BC=9A?= =?UTF-8?q?=E7=AB=8B=E5=8D=B3=E5=9C=A8=E8=AE=BE=E8=AE=A1=E5=99=A8=E6=94=B9?= =?UTF-8?q?=E5=8F=98=E5=90=8D=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/designer/creator/XButton.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/designer_form/src/com/fr/design/designer/creator/XButton.java b/designer_form/src/com/fr/design/designer/creator/XButton.java index 9913c27d08..d534f6d632 100644 --- a/designer_form/src/com/fr/design/designer/creator/XButton.java +++ b/designer_form/src/com/fr/design/designer/creator/XButton.java @@ -289,4 +289,21 @@ public class XButton extends XWidgetCreator { protected String getIconName() { return "button_16.png"; } + + /** + * data属性改变触发其他操作 + * + */ + public void firePropertyChange(){ + FreeButton button = (FreeButton) data; + setButtonText(button.getText()); + checkButonType(); + if (button.getFont() != null) { + contentLabel.setFont(button.getFont().applyResolutionNP( + ScreenResolution.getScreenResolution())); + contentLabel.setForeground(button.getFont().getForeground()); + } + + } + } \ No newline at end of file From ed78a57558c35e82fd2828359e81a2bfba82b35d Mon Sep 17 00:00:00 2001 From: "yaoh.wu" Date: Tue, 21 Nov 2017 15:27:41 +0800 Subject: [PATCH 2/7] =?UTF-8?q?REPORT-5668=20=E5=8D=95=E5=85=83=E6=A0=BC?= =?UTF-8?q?=E5=85=83=E7=B4=A0=E4=B8=8E=E6=82=AC=E6=B5=AE=E5=85=83=E7=B4=A0?= =?UTF-8?q?=E5=9B=BE=E8=A1=A8=E9=85=8D=E7=BD=AE=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/module/DesignerModule.java | 6 +- .../fr/design/actions/core/ActionFactory.java | 91 +++++++++++++++---- 2 files changed, 76 insertions(+), 21 deletions(-) diff --git a/designer/src/com/fr/design/module/DesignerModule.java b/designer/src/com/fr/design/module/DesignerModule.java index e3fc7b6162..57b25b2b07 100644 --- a/designer/src/com/fr/design/module/DesignerModule.java +++ b/designer/src/com/fr/design/module/DesignerModule.java @@ -151,7 +151,7 @@ public class DesignerModule extends DesignModule { ActionFactory.registerCellEditor(BiasTextPainter.class, new CellBiasTextPainterEditor()); ActionFactory.registerCellEditor(BufferedImage.class, new CellImageQuickEditor()); - ActionFactory.registerChartCellEditorInEditor(new BasicChartQuickEditor()); + ActionFactory.registerChartCellEditorInEditor(BasicChartQuickEditor.class); Set providers = ExtraDesignClassManager.getInstance().getArray(ElementUIProvider.MARK_STRING); for (ElementUIProvider provider : providers) { @@ -173,13 +173,13 @@ public class DesignerModule extends DesignModule { * kunnat: 注册悬浮选中Editor */ private void registerFloatEditor() { - + ActionFactory.registerFloatEditor(String.class, new FloatStringQuickEditor()); ActionFactory.registerFloatEditor(Formula.class, new FloatStringQuickEditor()); ActionFactory.registerFloatEditor(Image.class, new FloatImageQuickEditor()); ActionFactory.registerFloatEditor(BufferedImage.class, new FloatImageQuickEditor()); - ActionFactory.registerChartFloatEditorInEditor(new FloatChartQuickEditor()); + ActionFactory.registerChartFloatEditorInEditor(FloatChartQuickEditor.class); } /** diff --git a/designer_base/src/com/fr/design/actions/core/ActionFactory.java b/designer_base/src/com/fr/design/actions/core/ActionFactory.java index 38f27ca061..7bc73acbb6 100644 --- a/designer_base/src/com/fr/design/actions/core/ActionFactory.java +++ b/designer_base/src/com/fr/design/actions/core/ActionFactory.java @@ -30,15 +30,25 @@ import java.util.concurrent.ConcurrentMap; public class ActionFactory { private static LinkedHashSet> actionClasses = new LinkedHashSet<>(); private static LinkedHashSet> floatActionClasses = new LinkedHashSet<>(); + private static Class chartCollectionClass = null; /** - * 悬浮元素编辑器 + * 无需每次实例化的悬浮元素编辑器 */ private static ConcurrentMap floatEditor = new ConcurrentHashMap<>(); - private static Class chartCollectionClass = null; /** - * 单元格元素编辑器 + * 无需每次实例化的单元格元素编辑器 */ private static ConcurrentMap cellEditor = new ConcurrentHashMap<>(); + + /** + * 需要每次实例化的悬浮元素编辑器 + */ + private static ConcurrentMap> floatEditorClass = new ConcurrentHashMap<>(); + /** + * 需要每次实例化的单元格元素编辑器 + */ + private static ConcurrentMap> cellEditorClass = new ConcurrentHashMap<>(); + private static UpdateAction chartPreStyleAction = null; private static UpdateAction chartMapEditorAction = null; @@ -46,7 +56,7 @@ public class ActionFactory { } /** - * 注册单元格编辑器 + * 注册无需每次实例化的单元格元素编辑器 * * @param clazz 单元格属性类型 * @param editor 单元格编辑器实例 @@ -57,7 +67,7 @@ public class ActionFactory { /** - * 注册悬浮元素编辑器 + * 注册无需每次实例化的悬浮元素编辑器 * * @param clazz 悬浮元素类型 * @param editor 悬浮元素编辑器实例 @@ -66,6 +76,28 @@ public class ActionFactory { floatEditor.put(clazz, editor); } + /** + * 注册需要每次实例化的单元格元素编辑器 + * + * @param clazz 单元格属性类型 + * @param editorClass 单元格编辑器类 + */ + public static void registerCellEditorClass(Class clazz, Class editorClass) { + cellEditorClass.put(clazz, editorClass); + } + + + /** + * 注册需要每次实例化的悬浮元素编辑器 + * + * @param clazz 悬浮元素类型 + * @param editorClass 悬浮元素编辑器类 + */ + public static void registerFloatEditorClass(Class clazz, Class editorClass) { + floatEditorClass.put(clazz, editorClass); + } + + /** * kunsnat: 图表注册 悬浮元素编辑器 , 因为ChartCollecion和ChartQuickEditor一个在Chart,一个在Designer, 所以分开注册. * @@ -97,22 +129,22 @@ public class ActionFactory { /** * kunsnat: 图表注册 悬浮元素编辑器 , 因为ChartCollection和ChartQuickEditor一个在Chart,一个在Designer, 所以分开注册. * - * @param editor 待说明 + * @param editorClass 悬浮元素图表编辑器类 */ - public static void registerChartFloatEditorInEditor(QuickEditor editor) { + public static void registerChartFloatEditorInEditor(Class editorClass) { if (chartCollectionClass != null) { - floatEditor.put(chartCollectionClass, editor); + registerFloatEditorClass(chartCollectionClass, editorClass); } } /** - * kunsnat: 图表注册 悬浮元素编辑器 , 因为ChartCollecion和ChartQuickEditor一个在Chart,一个在Designer, 所以分开注册. + * kunsnat: 图表注册 单元格元素编辑器 , 因为ChartCollecion和ChartQuickEditor一个在Chart,一个在Designer, 所以分开注册. * - * @param editor 待说明 + * @param editorClass 单元格元素图表编辑器类 */ - public static void registerChartCellEditorInEditor(QuickEditor editor) { + public static void registerChartCellEditorInEditor(Class editorClass) { if (chartCollectionClass != null) { - cellEditor.put(chartCollectionClass, editor); + registerCellEditorClass(chartCollectionClass, editorClass); } } @@ -153,7 +185,7 @@ public class ActionFactory { * @return 编辑器实例 */ public static QuickEditor getFloatEditor(Class clazz) { - return createEditor(clazz, floatEditor); + return createEditor(clazz, floatEditor, floatEditorClass); } /** @@ -163,7 +195,7 @@ public class ActionFactory { * @return 编辑器实例 */ public static QuickEditor getCellEditor(Class clazz) { - return createEditor(clazz, cellEditor); + return createEditor(clazz, cellEditor, cellEditorClass); } public static UpdateAction createAction(Class clazz) { @@ -299,17 +331,40 @@ public class ActionFactory { return actions.toArray(new UpdateAction[actions.size()]); } - private static QuickEditor createEditor(Class clazz, Map editorMap) { - QuickEditor c = findQuickEditorClass(clazz, editorMap); + private static QuickEditor createEditor(Class clazz, Map editorMap, Map> editorClassMap) { + QuickEditor c = findQuickEditor(clazz, editorMap); if (c == null) { - FRLogger.getLogger().error("No Such Editor"); + Class cClazz = findQuickEditorClass(clazz, editorClassMap); + if (cClazz == null) { + FRLogger.getLogger().error("No Such Editor"); + return null; + } + try { + Constructor constructor = cClazz.getDeclaredConstructor(); + constructor.setAccessible(true); + return constructor.newInstance(); + } catch (Exception e) { + FRContext.getLogger().error(e.getMessage(), e); + } return null; } return c; } - private static QuickEditor findQuickEditorClass(Class clazz, Map editorMap) { + private static QuickEditor findQuickEditor(Class clazz, Map editorMap) { QuickEditor c = editorMap.get(clazz); + if (c == null) { + Class superClazz = clazz.getSuperclass(); + if (superClazz == null) { + return null; + } + return findQuickEditor(superClazz, editorMap); + } + return c; + } + + private static Class findQuickEditorClass(Class clazz, Map> editorMap) { + Class c = editorMap.get(clazz); if (c == null) { Class superClazz = clazz.getSuperclass(); if (superClazz == null) { From 3ee3f35bffd0300c658928bb0b7a8c3e416c6f90 Mon Sep 17 00:00:00 2001 From: RichieJi Date: Wed, 22 Nov 2017 10:53:26 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E5=8C=96JavaScript?= =?UTF-8?q?=E4=BB=A3=E7=A0=81+=E7=99=BB=E5=BD=95=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/images/edit/format.png | Bin 0 -> 463 bytes .../fr/design/javascript/JSContentPane.java | 333 ++++++++++-------- .../com/fr/design/locale/designer.properties | 1 + .../design/locale/designer_en_US.properties | 1 + .../design/locale/designer_ja_JP.properties | 1 + .../design/locale/designer_ko_KR.properties | 1 + .../design/locale/designer_zh_CN.properties | 1 + .../design/locale/designer_zh_TW.properties | 1 + 8 files changed, 192 insertions(+), 147 deletions(-) create mode 100644 designer_base/src/com/fr/design/images/edit/format.png diff --git a/designer_base/src/com/fr/design/images/edit/format.png b/designer_base/src/com/fr/design/images/edit/format.png new file mode 100644 index 0000000000000000000000000000000000000000..9e147853406719e4442c315ea50ac94aa74bc3af GIT binary patch literal 463 zcmV;=0WkiFP)Px$iAh93R5%f1W*`G3XA~J4nws&SKXdXeBdPk6Q}eq2|7R!x>0@MJF=8UcfTWcC z9++m3KBm9_B#1Tuq?v)?e=*ELMn=Z9($WGui8272W?5;$h=zuSe=MKZiB4o<=IG@1 zfBXz)I*d+9&7Tf*@_$AqhP(g%K}10|LpA>ai7H6??m;w23SBc;?Ef|u_D?@P zyZ~A$fTXpbK~bt659WM|H%fr$Q-EP3SZFcc$k6cGyvnYf!d~I4m1D&002ovPDHLk FV1fz~$%X&` literal 0 HcmV?d00001 diff --git a/designer_base/src/com/fr/design/javascript/JSContentPane.java b/designer_base/src/com/fr/design/javascript/JSContentPane.java index 31d0050351..47f2b5293d 100644 --- a/designer_base/src/com/fr/design/javascript/JSContentPane.java +++ b/designer_base/src/com/fr/design/javascript/JSContentPane.java @@ -1,148 +1,187 @@ -package com.fr.design.javascript; - -import com.fr.design.constants.KeyWords; -import com.fr.design.DesignerEnvManager; -import com.fr.design.gui.autocomplete.*; -import com.fr.design.gui.icontainer.UIScrollPane; -import com.fr.design.gui.ilable.UILabel; -import com.fr.design.gui.syntax.ui.rsyntaxtextarea.RSyntaxTextArea; -import com.fr.design.gui.syntax.ui.rsyntaxtextarea.SyntaxConstants; -import com.fr.design.layout.FRGUIPaneFactory; -import com.fr.design.dialog.BasicPane; - -import javax.swing.*; -import java.awt.*; -import java.util.ArrayList; - -public class JSContentPane extends BasicPane { - private RSyntaxTextArea contentTextArea; - private UILabel funNameLabel; - - private int titleWidth = 180; - - public JSContentPane(String[] args) { - this.setLayout(FRGUIPaneFactory.createBorderLayout()); - funNameLabel = new UILabel(); - this.setFunctionTitle(args); - this.add(funNameLabel, BorderLayout.NORTH); - - contentTextArea = new RSyntaxTextArea(); - contentTextArea.setCloseCurlyBraces(true); - contentTextArea.setLineWrap(true); - contentTextArea.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVASCRIPT); - contentTextArea.setCodeFoldingEnabled(true); - contentTextArea.setAntiAliasingEnabled(true); - - CompletionProvider provider = createCompletionProvider(); - - AutoCompletion ac = new AutoCompletion(provider); - String shortCuts = DesignerEnvManager.getEnvManager().getAutoCompleteShortcuts(); - - ac.setTriggerKey(convert2KeyStroke(shortCuts)); - ac.install(contentTextArea); - - UIScrollPane sp = new UIScrollPane(contentTextArea); - this.add(sp, BorderLayout.CENTER); - - UILabel funNameLabel2 = new UILabel(); - funNameLabel2.setText("}"); - this.add(funNameLabel2, BorderLayout.SOUTH); - } - - private KeyStroke convert2KeyStroke(String ks) { - return KeyStroke.getKeyStroke(ks.replace("+", "pressed")); - } - - @Override - protected String title4PopupWindow() { - return "JS"; - } - - public void populate(String js) { - this.contentTextArea.setText(js); - } - - public String update() { - return this.contentTextArea.getText(); - } - - public void setFunctionTitle(String[] args) { - funNameLabel.setText(createFunctionTitle(args)); - } - - public void setFunctionTitle(String[] args, String[] defaultArgs) { - String[] titles; - if (defaultArgs == null) { - titles = args; - } else if (args == null) { - titles = defaultArgs; - } else { - ArrayList list = new ArrayList(); - for (String s : defaultArgs) { - list.add(s); - } - for (String s : args) { - list.add(s); - } - titles = (String[])list.toArray(new String[list.size()]); - } - setFunctionTitle(titles); - } - - /** - * 用html,方便换行 - * - * @param args - * @return - */ - private String createFunctionTitle(String[] args) { - StringBuffer sb = new StringBuffer(); - sb.append("
function("); - int width = titleWidth; - FontMetrics cellFM = this.getFontMetrics(this.getFont()); - int tempwidth = 0; - if (args != null) { - for (int i = 0; i < args.length; i++) { - if (args[i] == null) { - continue; - } - if (cellFM.stringWidth(args[i]) < width) { - tempwidth = tempwidth + cellFM.stringWidth(args[i]); - if (tempwidth < width) { - sb.append(args[i]); - if (i != args.length - 1) { - sb.append(","); - } - } else { - tempwidth = 0; - i = i - 1;// 后退一步 - sb.append("

     "); - } - } else { - sb.append("

     "); - sb.append(args[i]); - sb.append("

"); - } - } - } - sb.append("){
"); - return sb.toString(); - } - - private CompletionProvider createCompletionProvider() { - - DefaultCompletionProvider provider = new DefaultCompletionProvider(); - - for (String key : KeyWords.JAVASCRIPT) { - provider.addCompletion(new BasicCompletion(provider, key)); - } - - for (String[] key : KeyWords.JAVASCRIPT_SHORT) { - provider.addCompletion(new ShorthandCompletion(provider, key[0], - key[1], key[1])); - } - - return provider; - - } +package com.fr.design.javascript; + +import com.fr.design.DesignerEnvManager; +import com.fr.design.constants.KeyWords; +import com.fr.design.dialog.BasicPane; +import com.fr.design.gui.autocomplete.AutoCompletion; +import com.fr.design.gui.autocomplete.BasicCompletion; +import com.fr.design.gui.autocomplete.CompletionProvider; +import com.fr.design.gui.autocomplete.DefaultCompletionProvider; +import com.fr.design.gui.autocomplete.ShorthandCompletion; +import com.fr.design.gui.icontainer.UIScrollPane; +import com.fr.design.gui.ilable.UILabel; +import com.fr.design.gui.syntax.ui.rsyntaxtextarea.RSyntaxTextArea; +import com.fr.design.gui.syntax.ui.rsyntaxtextarea.SyntaxConstants; +import com.fr.design.javascript.beautify.JavaScriptFormatHelper; +import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.design.utils.gui.GUICoreUtils; +import com.fr.general.IOUtils; +import com.fr.general.Inter; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.util.ArrayList; + +public class JSContentPane extends BasicPane { + private RSyntaxTextArea contentTextArea; + private UILabel funNameLabel; + + private int titleWidth = 180; + + public JSContentPane(String[] args) { + this.setLayout(FRGUIPaneFactory.createBorderLayout()); + funNameLabel = new UILabel(); + this.setFunctionTitle(args); + + UILabel label = new UILabel(Inter.getLocText("FR-Designer_Format_JavaScript"), IOUtils.readIcon("com/fr/design/images/edit/format.png"), SwingConstants.LEFT); + label.setCursor(new Cursor(Cursor.HAND_CURSOR)); + label.setToolTipText(Inter.getLocText("FR-Designer_Format_JavaScript")); + label.addMouseListener(new MouseAdapter() { + @Override + public void mouseReleased(MouseEvent e) { + new SwingWorker() { + @Override + protected String doInBackground() throws Exception { + return JavaScriptFormatHelper.beautify(contentTextArea.getText()); + } + + @Override + protected void done() { + try { + String text = get(); + contentTextArea.setText(text); + } catch (Exception ignore) { + + } + } + }.execute(); + } + }); + + this.add(GUICoreUtils.createBorderLayoutPane( + funNameLabel, BorderLayout.WEST, + label, BorderLayout.EAST + ), BorderLayout.NORTH); + + contentTextArea = new RSyntaxTextArea(); + contentTextArea.setCloseCurlyBraces(true); + contentTextArea.setLineWrap(true); + contentTextArea.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVASCRIPT); + contentTextArea.setCodeFoldingEnabled(true); + contentTextArea.setAntiAliasingEnabled(true); + + CompletionProvider provider = createCompletionProvider(); + + AutoCompletion ac = new AutoCompletion(provider); + String shortCuts = DesignerEnvManager.getEnvManager().getAutoCompleteShortcuts(); + + ac.setTriggerKey(convert2KeyStroke(shortCuts)); + ac.install(contentTextArea); + + UIScrollPane sp = new UIScrollPane(contentTextArea); + this.add(sp, BorderLayout.CENTER); + + UILabel funNameLabel2 = new UILabel(); + funNameLabel2.setText("}"); + this.add(funNameLabel2, BorderLayout.SOUTH); + } + + private KeyStroke convert2KeyStroke(String ks) { + return KeyStroke.getKeyStroke(ks.replace("+", "pressed")); + } + + @Override + protected String title4PopupWindow() { + return "JS"; + } + + public void populate(String js) { + this.contentTextArea.setText(js); + } + + public String update() { + return this.contentTextArea.getText(); + } + + public void setFunctionTitle(String[] args) { + funNameLabel.setText(createFunctionTitle(args)); + } + + public void setFunctionTitle(String[] args, String[] defaultArgs) { + String[] titles; + if (defaultArgs == null) { + titles = args; + } else if (args == null) { + titles = defaultArgs; + } else { + ArrayList list = new ArrayList(); + for (String s : defaultArgs) { + list.add(s); + } + for (String s : args) { + list.add(s); + } + titles = (String[]) list.toArray(new String[list.size()]); + } + setFunctionTitle(titles); + } + + /** + * 用html,方便换行 + * + * @param args + * @return + */ + private String createFunctionTitle(String[] args) { + StringBuffer sb = new StringBuffer(); + sb.append("
function("); + int width = titleWidth; + FontMetrics cellFM = this.getFontMetrics(this.getFont()); + int tempwidth = 0; + if (args != null) { + for (int i = 0; i < args.length; i++) { + if (args[i] == null) { + continue; + } + if (cellFM.stringWidth(args[i]) < width) { + tempwidth = tempwidth + cellFM.stringWidth(args[i]); + if (tempwidth < width) { + sb.append(args[i]); + if (i != args.length - 1) { + sb.append(","); + } + } else { + tempwidth = 0; + i = i - 1;// 后退一步 + sb.append("

     "); + } + } else { + sb.append("

     "); + sb.append(args[i]); + sb.append("

"); + } + } + } + sb.append("){
"); + return sb.toString(); + } + + private CompletionProvider createCompletionProvider() { + + DefaultCompletionProvider provider = new DefaultCompletionProvider(); + + for (String key : KeyWords.JAVASCRIPT) { + provider.addCompletion(new BasicCompletion(provider, key)); + } + + for (String[] key : KeyWords.JAVASCRIPT_SHORT) { + provider.addCompletion(new ShorthandCompletion(provider, key[0], + key[1], key[1])); + } + + return provider; + + } } \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index 0cde114254..bbed62b646 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -2148,3 +2148,4 @@ FR-Designer_Sheet_Label_Page_Display_Position= FR-Designer_Provide_Choose_All= FR-Designer_Decimal_Places= FR-Designer_Env_Des_Https=If HTTPS is enabled or the HTTPS configuration (certificate path, HTTPS key) is modified, you must restart the designer to take effect. +FR-Designer_Format_JavaScript=Format Code diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties index 26abebb96c..e5608bf896 100644 --- a/designer_base/src/com/fr/design/locale/designer_en_US.properties +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -2147,3 +2147,4 @@ FR-Designer_Sheet_Label_Page_Display_Position= FR-Designer_Provide_Choose_All= FR-Designer_Decimal_Places= FR-Designer_Env_Des_Https=If HTTPS is enabled or the HTTPS configuration (certificate path, HTTPS key) is modified, you must restart the designer to take effect. +FR-Designer_Format_JavaScript=Format Code diff --git a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties index a4501ea4db..bb5cfc1712 100644 --- a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties +++ b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties @@ -2148,3 +2148,4 @@ FR-Designer_Provide_Choose_All=\u5168\u9078\u629E\u53EF\u80FD FR-Designer_Decimal_Places=\u5C0F\u6570\u67A0\u6570: FR-Base-Load_Resource_File=\u8A2D\u5B9A\u30D5\u30A1\u30A4\u30EB\u30ED\u30FC\u30C9 FR-Designer_Env_Des_Https= +FR-Designer_Format_JavaScript=Format Code diff --git a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties index 925a7779f7..d25124d98e 100644 --- a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties +++ b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties @@ -2148,3 +2148,4 @@ FR-Base-Load_Resource_File=\uB85C\uB529\uAD6C\uC131\uD30C\uC77C FR-Designer_Export_Background= FR-Designer_Print_Background= FR-Designer_Env_Des_Https= +FR-Designer_Format_JavaScript=Format Code diff --git a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties index 6590ed5838..f7b8d3a3cd 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties @@ -2148,3 +2148,4 @@ FR-Designer_Sheet_Label_Page_Display_Position= FR-Designer_Provide_Choose_All= FR-Designer_Decimal_Places= FR-Designer_Env_Des_Https=\u82E5\u542F\u7528https\u6216\u4FEE\u6539https\u914D\u7F6E\uFF08\u8BC1\u4E66\u8DEF\u5F84\u3001https\u79D8\u94A5\uFF09\uFF0C\u5FC5\u987B\u91CD\u542F\u8BBE\u8BA1\u5668\u624D\u80FD\u751F\u6548\u3002 +FR-Designer_Format_JavaScript=\u683C\u5F0F\u5316\u4EE3\u7801 \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties index 157d303519..42817879ea 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties @@ -2147,3 +2147,4 @@ FR-Designer_Sheet_Label_Page_Display_Position= FR-Designer_Provide_Choose_All= FR-Designer_Decimal_Places= FR-Designer_Env_Des_Https=\u82E5\u555F\u7528https\u6216\u4FEE\u6539https\u914D\u7F6E\uFF08\u8B49\u66F8\u8DEF\u5F91\u3001https\u7955\u9470\uFF09\uFF0C\u5FC5\u9808\u91CD\u555F\u8A2D\u8A08\u5668\u624D\u80FD\u751F\u6548\u3002 +FR-Designer_Format_JavaScript=Format Code From 0423b1f21f57f50636c90baef3163252fdf146cc Mon Sep 17 00:00:00 2001 From: MoMeak Date: Wed, 22 Nov 2017 11:48:24 +0800 Subject: [PATCH 4/7] =?UTF-8?q?REPORT-5661=20mac=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E6=89=93=E5=BC=80=E6=9C=80=E8=BF=91=E7=9A=84=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=EF=BC=8C=E6=8F=90=E7=A4=BA=E6=A8=A1=E6=9D=BF=E4=B8=8D?= =?UTF-8?q?=E5=AD=98=E5=9C=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_base/src/com/fr/design/mainframe/JTemplate.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/designer_base/src/com/fr/design/mainframe/JTemplate.java b/designer_base/src/com/fr/design/mainframe/JTemplate.java index fc46ab33f1..5705f784d5 100644 --- a/designer_base/src/com/fr/design/mainframe/JTemplate.java +++ b/designer_base/src/com/fr/design/mainframe/JTemplate.java @@ -45,6 +45,7 @@ import com.fr.general.ComparatorUtils; import com.fr.general.FRLogger; import com.fr.general.Inter; import com.fr.stable.ArrayUtils; +import com.fr.stable.OperatingSystem; import com.fr.stable.ProductConstants; import com.fr.stable.StringUtils; import com.fr.stable.core.UUID; @@ -196,7 +197,11 @@ public abstract class JTemplate> ex if (editingFileName.startsWith(ProjectConstants.REPORTLETS_NAME)) { editingFileName = ((FileNodeFILE) getEditingFILE()).getEnvPath() + File.separator + editingFileName; } - return editingFileName.replaceAll("/", "\\\\"); + if (!OperatingSystem.isMacOS()) { + return editingFileName.replaceAll("/", "\\\\"); + } else { + return editingFileName.replaceAll("\\\\", "/"); + } } protected abstract JComponent createCenterPane(); From fb1f22eae842b50751fb22cd9cd6d3e184d6facb Mon Sep 17 00:00:00 2001 From: "yaoh.wu" Date: Wed, 22 Nov 2017 13:46:07 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E4=BC=98=E5=85=88=E5=A4=84=E7=90=86?= =?UTF-8?q?=E5=86=85=E5=AD=98=E9=87=8A=E6=94=BE=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/module/DesignerModule.java | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/designer/src/com/fr/design/module/DesignerModule.java b/designer/src/com/fr/design/module/DesignerModule.java index 57b25b2b07..1ec15dabb8 100644 --- a/designer/src/com/fr/design/module/DesignerModule.java +++ b/designer/src/com/fr/design/module/DesignerModule.java @@ -141,22 +141,22 @@ public class DesignerModule extends DesignModule { */ private void registerCellEditor() { - ActionFactory.registerCellEditor(String.class, new CellStringQuickEditor()); - ActionFactory.registerCellEditor(Number.class, new CellStringQuickEditor()); - ActionFactory.registerCellEditor(BaseFormula.class, new CellFormulaQuickEditor()); - ActionFactory.registerCellEditor(SubReport.class, new CellSubReportEditor()); - ActionFactory.registerCellEditor(RichText.class, new CellRichTextEditor()); - ActionFactory.registerCellEditor(DSColumn.class, new CellDSColumnEditor()); - ActionFactory.registerCellEditor(Image.class, new CellImageQuickEditor()); - ActionFactory.registerCellEditor(BiasTextPainter.class, new CellBiasTextPainterEditor()); - ActionFactory.registerCellEditor(BufferedImage.class, new CellImageQuickEditor()); + ActionFactory.registerCellEditorClass(String.class, CellStringQuickEditor.class); + ActionFactory.registerCellEditorClass(Number.class, CellStringQuickEditor.class); + ActionFactory.registerCellEditorClass(BaseFormula.class, CellFormulaQuickEditor.class); + ActionFactory.registerCellEditorClass(SubReport.class, CellSubReportEditor.class); + ActionFactory.registerCellEditorClass(RichText.class, CellRichTextEditor.class); + ActionFactory.registerCellEditorClass(DSColumn.class, CellDSColumnEditor.class); + ActionFactory.registerCellEditorClass(Image.class, CellImageQuickEditor.class); + ActionFactory.registerCellEditorClass(BiasTextPainter.class, CellBiasTextPainterEditor.class); + ActionFactory.registerCellEditorClass(BufferedImage.class, CellImageQuickEditor.class); ActionFactory.registerChartCellEditorInEditor(BasicChartQuickEditor.class); Set providers = ExtraDesignClassManager.getInstance().getArray(ElementUIProvider.MARK_STRING); for (ElementUIProvider provider : providers) { try { - ActionFactory.registerCellEditor(provider.targetObjectClass(), provider.quickEditor().newInstance()); + ActionFactory.registerCellEditorClass(provider.targetObjectClass(), provider.quickEditor()); } catch (Exception e) { FRLogger.getLogger().error(e.getMessage(), e); } @@ -174,10 +174,10 @@ public class DesignerModule extends DesignModule { */ private void registerFloatEditor() { - ActionFactory.registerFloatEditor(String.class, new FloatStringQuickEditor()); - ActionFactory.registerFloatEditor(Formula.class, new FloatStringQuickEditor()); - ActionFactory.registerFloatEditor(Image.class, new FloatImageQuickEditor()); - ActionFactory.registerFloatEditor(BufferedImage.class, new FloatImageQuickEditor()); + ActionFactory.registerFloatEditorClass(String.class, FloatStringQuickEditor.class); + ActionFactory.registerFloatEditorClass(Formula.class, FloatStringQuickEditor.class); + ActionFactory.registerFloatEditorClass(Image.class, FloatImageQuickEditor.class); + ActionFactory.registerFloatEditorClass(BufferedImage.class, FloatImageQuickEditor.class); ActionFactory.registerChartFloatEditorInEditor(FloatChartQuickEditor.class); } From cd63a0a43931b8e610b0febfaa5cc1f9a857915e Mon Sep 17 00:00:00 2001 From: MoMeak Date: Wed, 22 Nov 2017 14:04:37 +0800 Subject: [PATCH 6/7] =?UTF-8?q?REPORT-5661=20=E5=8C=BA=E5=88=86mac?= =?UTF-8?q?=E5=92=8Cwindows?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_base/src/com/fr/design/mainframe/DesignerFrame.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer_base/src/com/fr/design/mainframe/DesignerFrame.java b/designer_base/src/com/fr/design/mainframe/DesignerFrame.java index 1881bd02c0..f6c2b2c404 100644 --- a/designer_base/src/com/fr/design/mainframe/DesignerFrame.java +++ b/designer_base/src/com/fr/design/mainframe/DesignerFrame.java @@ -918,7 +918,7 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta if (tplFile instanceof FileFILE) { fullName = tplFile.getPath(); } - fullName = fullName.replaceAll("/", "\\\\"); + fullName = OperatingSystem.isMacOS() ? fullName.replaceAll("\\\\", "/") : fullName.replaceAll("/", "\\\\"); int index = HistoryTemplateListPane.getInstance().contains(fullName); if (index != -1) { this.activateJTemplate(HistoryTemplateListPane.getInstance().getHistoryList().get(index)); From bee302560185dbef05914b0704506ef454ff3cc6 Mon Sep 17 00:00:00 2001 From: MoMeak Date: Wed, 22 Nov 2017 15:04:49 +0800 Subject: [PATCH 7/7] =?UTF-8?q?REPORT-5661=20mac=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E6=89=93=E5=BC=80=E6=9C=80=E8=BF=91=E7=9A=84=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=EF=BC=8C=E6=8F=90=E7=A4=BA=E6=A8=A1=E6=9D=BF=E4=B8=8D?= =?UTF-8?q?=E5=AD=98=E5=9C=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_base/src/com/fr/design/mainframe/DesignerFrame.java | 2 +- designer_base/src/com/fr/design/mainframe/JTemplate.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/designer_base/src/com/fr/design/mainframe/DesignerFrame.java b/designer_base/src/com/fr/design/mainframe/DesignerFrame.java index f6c2b2c404..b8dc09bab7 100644 --- a/designer_base/src/com/fr/design/mainframe/DesignerFrame.java +++ b/designer_base/src/com/fr/design/mainframe/DesignerFrame.java @@ -918,7 +918,7 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta if (tplFile instanceof FileFILE) { fullName = tplFile.getPath(); } - fullName = OperatingSystem.isMacOS() ? fullName.replaceAll("\\\\", "/") : fullName.replaceAll("/", "\\\\"); + fullName = OperatingSystem.isWindows() ? fullName.replaceAll("/", "\\\\") : fullName.replaceAll("\\\\", "/"); int index = HistoryTemplateListPane.getInstance().contains(fullName); if (index != -1) { this.activateJTemplate(HistoryTemplateListPane.getInstance().getHistoryList().get(index)); diff --git a/designer_base/src/com/fr/design/mainframe/JTemplate.java b/designer_base/src/com/fr/design/mainframe/JTemplate.java index 5705f784d5..e7be23efd3 100644 --- a/designer_base/src/com/fr/design/mainframe/JTemplate.java +++ b/designer_base/src/com/fr/design/mainframe/JTemplate.java @@ -197,7 +197,7 @@ public abstract class JTemplate> ex if (editingFileName.startsWith(ProjectConstants.REPORTLETS_NAME)) { editingFileName = ((FileNodeFILE) getEditingFILE()).getEnvPath() + File.separator + editingFileName; } - if (!OperatingSystem.isMacOS()) { + if (OperatingSystem.isWindows()) { return editingFileName.replaceAll("/", "\\\\"); } else { return editingFileName.replaceAll("\\\\", "/");