Browse Source

Merge branch 'release/9.0' of http://www.finedevelop.com:2015/scm/~kerry/design into release/9.0

master
kerry 7 years ago
parent
commit
b4817baf3a
  1. 195
      designer/src/com/fr/start/Designer.java
  2. 27
      designer_base/src/com/fr/design/gui/itoolbar/UIToolBarUI.java
  3. 2
      designer_base/src/com/fr/design/icon/IconPathConstants.java
  4. BIN
      designer_base/src/com/fr/design/images/control/edit.png
  5. BIN
      designer_base/src/com/fr/design/images/control/tab/remove.png
  6. 2
      designer_base/src/com/fr/design/locale/designer.properties
  7. 2
      designer_base/src/com/fr/design/locale/designer_en_US.properties
  8. 2
      designer_base/src/com/fr/design/locale/designer_ja_JP.properties
  9. 2
      designer_base/src/com/fr/design/locale/designer_ko_KR.properties
  10. 2
      designer_base/src/com/fr/design/locale/designer_zh_CN.properties
  11. 2
      designer_base/src/com/fr/design/locale/designer_zh_TW.properties
  12. 10
      designer_form/src/com/fr/design/designer/beans/models/StateModel.java

195
designer/src/com/fr/start/Designer.java

@ -51,17 +51,17 @@ public class Designer extends BaseDesigner {
private static final int TOOLBARPANEVGAP = -4;
private static final int PREVIEW_DOWN_X_GAP = 92;
private static final int GAP = 7;
private static final String OLD_ENV_FOLDER_71 = ".FineReport71";
private static final String OLD_ENV_FOLDER_70 = ".FineReport70";
private UserInfoPane userInfoPane;
private UIButton saveButton;
private UIButton undo;
private UIButton redo;
private UIPreviewButton run;
/**
* 设计器启动的Main方法
@ -135,30 +135,31 @@ public class Designer extends BaseDesigner {
public UILargeToolbar createLargeToolbar() {
UILargeToolbar largeToolbar = super.createLargeToolbar();
largeToolbar.setLayout(new FlowLayout(FlowLayout.CENTER, 0, 4));
largeToolbar.add(new JPanel() {
public Dimension getPreferredSize() {
Dimension dim = super.getPreferredSize();
dim.width = 1;
return dim;
}
});
largeToolbar.add(generateEmptyGap(1));
createRunButton(largeToolbar);
largeToolbar.add(run);
run.setBackground(UIConstants.TREE_BACKGROUND);
largeToolbar.add(new JPanel() {
run.setBackground(Color.WHITE);
largeToolbar.add(generateEmptyGap(GAP));
largeToolbar.addSeparator(new Dimension(2, 42));
largeToolbar.setBorder(new MatteBorder(new Insets(0, 0, 1, 0), UIConstants.LINE_COLOR));
return largeToolbar;
}
private JPanel generateEmptyGap(final int width) {
JPanel panel = new JPanel() {
public Dimension getPreferredSize() {
Dimension dim = super.getPreferredSize();
dim.width = GAP;
dim.width = width;
return dim;
}
});
largeToolbar.addSeparator(new Dimension(2, 42));
largeToolbar.setBorder(new MatteBorder(new Insets(0, 0, 1, 0), UIConstants.LINE_COLOR));
return largeToolbar;
};
panel.setBackground(Color.WHITE);
return panel;
}
/**
* 创建上面一排的工具栏按钮
*
* @return 按钮
*/
public UIButton[] createUp() {
@ -181,7 +182,7 @@ public class Designer extends BaseDesigner {
});
return saveButton;
}
private UIButton createUndoButton() {
undo = new UIButton(BaseUtils.readIcon("/com/fr/design/images/buttonicon/undo.png"));
undo.setToolTipText(KeySetUtils.UNDO.getMenuKeySetName());
@ -290,9 +291,10 @@ public class Designer extends BaseDesigner {
/**
* 生成工具栏
*
* @param toolbarComponent 工具栏
* @param plus 对象
* @return 更新后的toolbar
* @return 更新后的toolbar
*/
public JComponent resetToolBar(JComponent toolbarComponent, ToolBarMenuDockPlus plus) {
//如果是处于权限编辑状态
@ -331,16 +333,15 @@ public class Designer extends BaseDesigner {
public JTemplate<?, ?> createNewTemplate() {
return new JWorkBook();
}
/**
* 创建论坛登录面板, chart那边不需要
*
* @return 面板组件
*
*/
public Component createBBSLoginPane(){
if (userInfoPane == null){
userInfoPane = new UserInfoPane();
* 创建论坛登录面板, chart那边不需要
*
* @return 面板组件
*/
public Component createBBSLoginPane() {
if (userInfoPane == null) {
userInfoPane = new UserInfoPane();
}
return userInfoPane;
}
@ -358,68 +359,67 @@ public class Designer extends BaseDesigner {
protected SplashPane createSplashPane() {
return new ReportSplashPane();
}
/**
* 收集用户信息吗
*
*/
* 收集用户信息吗
*/
protected void collectUserInformation() {
//定制的就不弹出来了
if (!ComparatorUtils.equals(ProductConstants.APP_NAME, ProductConstants.DEFAULT_APP_NAME)) {
return;
}
DesignerEnvManager envManager = DesignerEnvManager.getEnvManager();
final String key = envManager.getActivationKey();
//本地验证通过
if(ActiveKeyGenerator.localVerify(key)){
onLineVerify(envManager, key);
UserInfoLabel.showBBSDialog();
return;
}
if(StableUtils.checkDesignerActive(readOldKey())){
//只要有老的key, 就不弹窗, 下次启动的时候, 在线验证下就行.
String newKey = ActiveKeyGenerator.generateActiveKey();
envManager.setActivationKey(newKey);
UserInfoLabel.showBBSDialog();
return;
}
//定制的就不弹出来了
if (!ComparatorUtils.equals(ProductConstants.APP_NAME, ProductConstants.DEFAULT_APP_NAME)) {
return;
}
DesignerEnvManager envManager = DesignerEnvManager.getEnvManager();
final String key = envManager.getActivationKey();
//本地验证通过
if (ActiveKeyGenerator.localVerify(key)) {
onLineVerify(envManager, key);
UserInfoLabel.showBBSDialog();
return;
}
if (StableUtils.checkDesignerActive(readOldKey())) {
//只要有老的key, 就不弹窗, 下次启动的时候, 在线验证下就行.
String newKey = ActiveKeyGenerator.generateActiveKey();
envManager.setActivationKey(newKey);
UserInfoLabel.showBBSDialog();
return;
}
CollectUserInformationDialog activeDialog = new CollectUserInformationDialog(
DesignerContext.getDesignerFrame());
DesignerContext.getDesignerFrame());
activeDialog.setVisible(true);
}
private void onLineVerify(DesignerEnvManager envManager, final String key){
int status = envManager.getActiveKeyStatus();
//没有联网验证过
if (status != 0) {
Thread authThread = new Thread(new Runnable() {
@Override
public void run() {
ActiveKeyGenerator.onLineVerify(key);
}
});
authThread.start();
}
private void onLineVerify(DesignerEnvManager envManager, final String key) {
int status = envManager.getActiveKeyStatus();
//没有联网验证过
if (status != 0) {
Thread authThread = new Thread(new Runnable() {
@Override
public void run() {
ActiveKeyGenerator.onLineVerify(key);
}
});
authThread.start();
}
}
private File getOldEnvFile(String folderName){
String userHome = System.getProperty("user.home");
if (userHome == null) {
userHome = System.getProperty("userHome");
}
String filePath = StableUtils.pathJoin(userHome, folderName, ProductConstants.APP_NAME + "Env.xml");
private File getOldEnvFile(String folderName) {
String userHome = System.getProperty("user.home");
if (userHome == null) {
userHome = System.getProperty("userHome");
}
String filePath = StableUtils.pathJoin(userHome, folderName, ProductConstants.APP_NAME + "Env.xml");
return new File(filePath);
}
private String getOldActiveKeyFromFile(File envFile){
private String getOldActiveKeyFromFile(File envFile) {
if (!envFile.exists()) {
return StringUtils.EMPTY;
}
return StringUtils.EMPTY;
}
DesignerEnvManager temp = new DesignerEnvManager();
try {
XMLTools.readFileXML(temp, envFile);
@ -428,26 +428,25 @@ public class Designer extends BaseDesigner {
}
return temp.getActivationKey();
}
//默认只从7.0和711的设计器里读取key
private String readOldKey(){
File file71 = getOldEnvFile(OLD_ENV_FOLDER_71);
if (!file71.exists()) {
File file70 = getOldEnvFile(OLD_ENV_FOLDER_70);
return getOldActiveKeyFromFile(file70);
}
return getOldActiveKeyFromFile(file71);
private String readOldKey() {
File file71 = getOldEnvFile(OLD_ENV_FOLDER_71);
if (!file71.exists()) {
File file70 = getOldEnvFile(OLD_ENV_FOLDER_70);
return getOldActiveKeyFromFile(file70);
}
return getOldActiveKeyFromFile(file71);
}
/**
* 设计器退出时, 做的一些操作.
*
*/
public void shutDown(){
InformationCollector collector = InformationCollector.getInstance();
collector.collectStopTime();
collector.saveXMLFile();
* 设计器退出时, 做的一些操作.
*/
public void shutDown() {
InformationCollector collector = InformationCollector.getInstance();
collector.collectStopTime();
collector.saveXMLFile();
ServletContext.fireServletStopListener();
}

27
designer_base/src/com/fr/design/gui/itoolbar/UIToolBarUI.java

@ -1,31 +1,16 @@
package com.fr.design.gui.itoolbar;
import java.awt.Component;
import java.awt.Dialog;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Window;
import java.awt.event.WindowListener;
import com.fr.design.gui.ibutton.UIToolButtonBorder;
import com.fr.design.gui.icheckbox.UICheckBox;
import javax.swing.AbstractButton;
import javax.swing.JComponent;
import javax.swing.JDialog;
import javax.swing.JRadioButton;
import javax.swing.JToolBar;
import javax.swing.RootPaneContainer;
import javax.swing.SwingUtilities;
import javax.swing.*;
import javax.swing.border.Border;
import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.UIResource;
import javax.swing.plaf.metal.MetalToolBarUI;
import com.fr.design.constants.UIConstants;
import com.fr.design.gui.ibutton.UIToolButtonBorder;
import com.fr.design.gui.icheckbox.UICheckBox;
import static com.fr.design.utils.ThemeUtils.BACK_COLOR;
import java.awt.*;
import java.awt.event.WindowListener;
public class UIToolBarUI extends MetalToolBarUI {
public static final String IS_TOOL_BAR_BUTTON_KEY = "JToolBar.isToolbarButton";
@ -91,7 +76,7 @@ public class UIToolBarUI extends MetalToolBarUI {
*/
public void paint(Graphics g, JComponent c) {
Graphics2D g2 = (Graphics2D) g;
g2.setColor(BACK_COLOR);
g2.setColor(Color.WHITE);
g2.fillRect(0, 0, c.getWidth(), c.getHeight());
}

2
designer_base/src/com/fr/design/icon/IconPathConstants.java

@ -1 +1 @@
package com.fr.design.icon; /** * Created by IntelliJ IDEA. * Author : Richer * Version: 6.5.6 * Date: 12-12-18 * Time: 上午9:42 * 用于保存所有图标路径的类 */ public class IconPathConstants { private IconPathConstants() { } public static final String ADD_POPMENU_ICON_PATH = "/com/fr/design/images/control/addPopup.png"; public static final String DS_ICON_PATH = "/com/fr/design/images/data/datasource.png"; public static final String CLASS_TD_ICON_PATH = "/com/fr/design/images/data/source/classTableData.png"; public static final String EMB_TD_ICON_PATH = "/com/fr/design/images/data/dataTable.png"; public static final String DS_RELATION_TD_ICON_PATH = "/com/fr/design/images/data/multi.png"; public static final String FILE_TD_ICON_PATH = "/com/fr/design/images/data/file.png"; private IconPathConstants() { private IconPathConstants() { private IconPathConstants() { private IconPathConstants() { private IconPathConstants() { } private IconPathConstants() { public static final String ADD_POPMENU_ICON_PATH = "/com/fr/design/images/control/addPopup.png"; private IconPathConstants() { public static final String DS_ICON_PATH = "/com/fr/design/images/data/datasource.png"; private IconPathConstants() { public static final String CLASS_TD_ICON_PATH = "/com/fr/design/images/data/source/classTableData.png"; private IconPathConstants() { public static final String EMB_TD_ICON_PATH = "/com/fr/design/images/data/dataTable.png"; private IconPathConstants() { public static final String DS_RELATION_TD_ICON_PATH = "/com/fr/design/images/data/multi.png"; private IconPathConstants() { public static final String FILE_TD_ICON_PATH = "/com/fr/design/images/data/file.png"; private IconPathConstants() { "/com/fr/web/images/form/forbid.png"; }
package com.fr.design.icon; /** * Created by IntelliJ IDEA. * Author : Richer * Version: 6.5.6 * Date: 12-12-18 * Time: 上午9:42 * 用于保存所有图标路径的类 */ public class IconPathConstants { } public static final String ADD_POPMENU_ICON_PATH = "/com/fr/design/images/control/addPopup.png"; } public static final String DS_ICON_PATH = "/com/fr/design/images/data/datasource.png"; public static final String CLASS_TD_ICON_PATH = "/com/fr/design/images/data/source/classTableData.png"; public static final String EMB_TD_ICON_PATH = "/com/fr/design/images/data/dataTable.png"; public static final String DS_RELATION_TD_ICON_PATH = "/com/fr/design/images/data/multi.png"; public static final String FILE_TD_ICON_PATH = "/com/fr/design/images/data/file.png"; } } private IconPathConstants() { } } } } public static final String ADD_POPMENU_ICON_PATH = "/com/fr/design/images/control/addPopup.png"; } public static final String DS_ICON_PATH = "/com/fr/design/images/data/datasource.png"; } public static final String CLASS_TD_ICON_PATH = "/com/fr/design/images/data/source/classTableData.png"; } public static final String EMB_TD_ICON_PATH = "/com/fr/design/images/data/dataTable.png"; } public static final String DS_RELATION_TD_ICON_PATH = "/com/fr/design/images/data/multi.png"; } public static final String FILE_TD_ICON_PATH = "/com/fr/design/images/data/file.png"; public static final String ADD_POPMENU_ICON_PATH = "/com/fr/design/images/control/addPopup.png"; public static final String XMLA_ICON_PATH = "/com/fr/design/images/data/cube.png"; public static final String ADD_POPMENU_ICON_PATH = "/com/fr/design/images/control/addPopup.png"; "/com/fr/web/images/form/forbid.png"; }

BIN
designer_base/src/com/fr/design/images/control/edit.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 399 B

After

Width:  |  Height:  |  Size: 352 B

BIN
designer_base/src/com/fr/design/images/control/tab/remove.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 B

2
designer_base/src/com/fr/design/locale/designer.properties

@ -548,7 +548,7 @@ FR-Designer_Function_Description_Area_Text=The class must inherit 'com.fr.script
FR-Designer_PageSetup_Horizontal=Horizontal
FR-Designer_PageSetup_Vertical=Vertical
FR-Designer_Gradient_Direction=Gradient Direction
FR-Designer_Drag_To_Select_Gradient=\\ Drag the button below to choose gradient area, click it to choose color
FR-Designer_Drag_To_Select_Gradient=Drag the button below to choose gradient area, click it to choose color
FR-Designer_Display_Value=Display Value
FR-Designer_Actual_Value=Actual Value
FR-Designer_CellWrite_ToolTip=Tool Tip of Cell

2
designer_base/src/com/fr/design/locale/designer_en_US.properties

@ -550,7 +550,7 @@ FR-Designer_Function_Description_Area_Text=The class must inherit 'com.fr.script
FR-Designer_PageSetup_Horizontal=Horizontal
FR-Designer_PageSetup_Vertical=Vertical
FR-Designer_Gradient_Direction=Gradient Direction
FR-Designer_Drag_To_Select_Gradient=\\ Drag the button below to choose gradient area, click it to choose color
FR-Designer_Drag_To_Select_Gradient=Drag the button below to choose gradient area, click it to choose color
FR-Designer_Display_Value=Display Value
FR-Designer_Actual_Value=Actual Value
FR-Designer_CellWrite_ToolTip=Tool Tip of Cell

2
designer_base/src/com/fr/design/locale/designer_ja_JP.properties

@ -526,7 +526,7 @@ FR-Designer_Function_Description_Area_Text=\u3053\u306E\u30AF\u30E9\u30B9\u306F\
FR-Designer_PageSetup_Horizontal=\u6A2A\u65B9\u5411
FR-Designer_PageSetup_Vertical=\u7E26\u65B9\u5411
FR-Designer_Gradient_Direction=\u65B9\u5411\u3092\u5F90\u3005\u306B\u5909\u5316
FR-Designer_Drag_To_Select_Gradient=\\ \u4E0B\u65B9\u306E\u30DC\u30BF\u30F3\u3092\u30D7\u30EB\u30C0\u30A6\u30F3\u3057\u3066\u6F38\u6B21\u5909\u5316\u30A8\u30EA\u30A2\u3092\u9078\u629E\u3057\u3001\u30AF\u30EA\u30C3\u30AF\u3057
FR-Designer_Drag_To_Select_Gradient=\u4E0B\u65B9\u306E\u30DC\u30BF\u30F3\u3092\u30D7\u30EB\u30C0\u30A6\u30F3\u3057\u3066\u6F38\u6B21\u5909\u5316\u30A8\u30EA\u30A2\u3092\u9078\u629E\u3057\u3001\u30AF\u30EA\u30C3\u30AF\u3057
FR-Designer_Display_Value=\u8868\u793A\u5024
FR-Designer_Actual_Value=\u5B9F\u969B\u5024
FR-Designer_CellWrite_ToolTip=\u30BB\u30EB\u30D2\u30F3\u30C8

2
designer_base/src/com/fr/design/locale/designer_ko_KR.properties

@ -522,7 +522,7 @@ FR-Designer_Function_Description_Area_Text=\uD574\uB2F9\uD074\uB798\uC2A4\uB294\
FR-Designer_PageSetup_Horizontal=\uAC00\uB85C
FR-Designer_PageSetup_Vertical=\uC138\uB85C
FR-Designer_Gradient_Direction=\uADF8\uB77C\uB370\uC774\uC158 \uBC29\uD5A5
FR-Designer_Drag_To_Select_Gradient=\\\uD558\uB2E8\uD0A4\uB97C\uB4DC\uB798\uADF8\uD558\uC5EC\uADF8\uB77C\uB370\uC774\uC158\uC601\uC5ED\uC744\uC120\uD0DD\uD558\uACE0\uD0A4\uB97C\uD074\uB9AD\uD558\uC5EC\uD574\uB2F9\uC0C9\uC120\uD0DD
FR-Designer_Drag_To_Select_Gradient=\uD558\uB2E8\uD0A4\uB97C\uB4DC\uB798\uADF8\uD558\uC5EC\uADF8\uB77C\uB370\uC774\uC158\uC601\uC5ED\uC744\uC120\uD0DD\uD558\uACE0\uD0A4\uB97C\uD074\uB9AD\uD558\uC5EC\uD574\uB2F9\uC0C9\uC120\uD0DD
FR-Designer_Display_Value=\uAC12\uBCF4\uC774\uAE30
FR-Designer_Actual_Value=\uC2E4\uC81C\uAC12
FR-Designer_CellWrite_ToolTip=\uB0B4\uC6A9\uC54C\uB9BC

2
designer_base/src/com/fr/design/locale/designer_zh_CN.properties

@ -556,7 +556,7 @@ FR-Designer_Function_Description_Area_Text=\u8BE5\u7C7B\u5FC5\u987B\u7EE7\u627F"
FR-Designer_PageSetup_Horizontal=\u6A2A\u5411
FR-Designer_PageSetup_Vertical=\u7EB5\u5411
FR-Designer_Gradient_Direction=\u6E10\u53D8\u65B9\u5411
FR-Designer_Drag_To_Select_Gradient=\\ \u62D6\u52A8\u4E0B\u65B9\u6309\u94AE\u9009\u62E9\u6E10\u53D8\u533A\u57DF\uFF0C\u5355\u51FB\u6309\u94AE\u9009\u62E9\u5BF9\u5E94\u989C\u8272
FR-Designer_Drag_To_Select_Gradient=\u62D6\u52A8\u4E0B\u65B9\u6309\u94AE\u9009\u62E9\u6E10\u53D8\u533A\u57DF\uFF0C\u5355\u51FB\u6309\u94AE\u9009\u62E9\u5BF9\u5E94\u989C\u8272
FR-Designer_Display_Value=\u663E\u793A\u503C
FR-Designer_Actual_Value=\u5B9E\u9645\u503C
FR-Designer_CellWrite_ToolTip=\u5185\u5BB9\u63D0\u793A

2
designer_base/src/com/fr/design/locale/designer_zh_TW.properties

@ -543,7 +543,7 @@ FR-Designer_Function_Description_Area_Text=\u8A72\u985E\u5FC5\u9808\u7E7C\u627F"
FR-Designer_PageSetup_Horizontal=\u6A2A\u5411
FR-Designer_PageSetup_Vertical=\u7E31\u5411
FR-Designer_Gradient_Direction=\u6F38\u8B8A\u65B9\u5411
FR-Designer_Drag_To_Select_Gradient=\\ \u62D6\u52D5\u4E0B\u767C\u90A3\u500B\u6309\u9215\u61F8\u8457\u5340\u57DF\uFF0C\u55AE\u64CA\u6309\u9215\u9078\u64C7\u984F\u8272
FR-Designer_Drag_To_Select_Gradient=\u62D6\u52D5\u4E0B\u767C\u90A3\u500B\u6309\u9215\u61F8\u8457\u5340\u57DF\uFF0C\u55AE\u64CA\u6309\u9215\u9078\u64C7\u984F\u8272
FR-Designer_Display_Value=\u986F\u793A\u503C
FR-Designer_Actual_Value=\u5BE6\u969B\u503C
FR-Designer_CellWrite_ToolTip=\u5167\u5BB9\u63D0\u793A

10
designer_form/src/com/fr/design/designer/beans/models/StateModel.java

@ -265,7 +265,15 @@ public class StateModel {
Rectangle bounds = createCurrentBounds(x, y);
if ((x != currentX) || (y != currentY)) {
selectionModel.setSelectedCreators(getHotspotCreators(bounds, designer.getRootComponent()));
ArrayList<XCreator> creators = getHotspotCreators(bounds, designer.getRootComponent());
if (creators.isEmpty() && designer.getRootComponent().getXCreatorCount() > 0) {
//当初始化布局是绝对布局的时候特殊处理,画框的时候若没有控件,默认焦点设置在绝对布局上
XCreator layout = designer.getRootComponent().getXCreator(0);
if (layout.acceptType(XWAbsoluteBodyLayout.class)) {
creators.add(layout);
}
}
selectionModel.setSelectedCreators(creators);
}
selectionModel.setHotspotBounds(null);
}

Loading…
Cancel
Save