Browse Source

Merge pull request #908 in BA/design from ~XIAOXIA/design:9.0 to 9.0

* commit '06af382b35fadc2970e1dd75fbc383ac38c3fb3c':
  bug fix
  bug fix
  rt
  alphafine 广告
  alphafine 广告弹框
  bug fix
  bug fix
  alphafine 广告弹窗
master
superman 8 years ago
parent
commit
cb6a072ebf
  1. 2
      designer/src/com/fr/aspectj/designer/TemplateProcessTracker.aj
  2. 7
      designer/src/com/fr/design/mainframe/alphafine/AlphaFineHelper.java
  3. 16
      designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java
  4. 10
      designer/src/com/fr/design/mainframe/alphafine/component/AlphaFinePane.java
  5. BIN
      designer/src/com/fr/design/mainframe/alphafine/images/check.png
  6. BIN
      designer/src/com/fr/design/mainframe/alphafine/images/open.png
  7. BIN
      designer/src/com/fr/design/mainframe/alphafine/images/remind.png
  8. BIN
      designer/src/com/fr/design/mainframe/alphafine/images/remind_close.png
  9. BIN
      designer/src/com/fr/design/mainframe/alphafine/images/uncheck.png
  10. 4
      designer/src/com/fr/design/mainframe/alphafine/search/manager/AlphaSearchManager.java
  11. 5
      designer/src/com/fr/design/mainframe/alphafine/search/manager/RecentSearchManager.java
  12. 32
      designer_base/src/com/fr/aspectj/designerbase/AlphaFineReminder.aj
  13. 24
      designer_base/src/com/fr/aspectj/designerbase/TemplateProcessTracker.aj
  14. 2
      designer_base/src/com/fr/design/DesignerEnvManager.java
  15. 2
      designer_base/src/com/fr/design/actions/help/AboutPane.java
  16. 3
      designer_base/src/com/fr/design/actions/help/alphafine/AlphafineAction.java
  17. 35
      designer_base/src/com/fr/design/actions/help/alphafine/AlphafineConfigManager.java
  18. 2
      designer_base/src/com/fr/design/actions/help/alphafine/AlphafineConfigPane.java
  19. 29
      designer_base/src/com/fr/design/actions/help/alphafine/AlphafineContext.java
  20. 8
      designer_base/src/com/fr/design/actions/help/alphafine/AlphafineListener.java
  21. 43
      designer_base/src/com/fr/design/actions/help/alphafine/RemindDialog.java
  22. 146
      designer_base/src/com/fr/design/actions/help/alphafine/RemindPane.java
  23. 3
      designer_base/src/com/fr/design/locale/designer.properties
  24. 3
      designer_base/src/com/fr/design/locale/designer_en_US.properties
  25. 3
      designer_base/src/com/fr/design/locale/designer_zh_CN.properties
  26. 3
      designer_base/src/com/fr/design/locale/designer_zh_TW.properties
  27. 2
      designer_base/src/com/fr/design/mainframe/loghandler/DesignerLogHandler.java
  28. 2
      designer_base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java
  29. 2
      designer_chart/src/com/fr/aspectj/designerchart/TemplateProcessTracker.aj
  30. 2
      designer_form/src/com/fr/aspectj/designerform/TemplateProcessTracker.aj

2
designer/src/com/fr/aspectj/designer/TemplateProcessTracker.aj

@ -41,7 +41,7 @@ public aspect TemplateProcessTracker {
before(ActionEvent e) : onActionPerformed(e) { before(ActionEvent e) : onActionPerformed(e) {
SourceLocation sl = thisJoinPoint.getSourceLocation(); SourceLocation sl = thisJoinPoint.getSourceLocation();
// !within(LogHandlerBar) 没用, 手动过滤 // !within(LogHandlerBar) 没用, 手动过滤
if (e.getSource().toString().contains("javax.swing.Timer")) { if (e != null && e.getSource().toString().contains("javax.swing.Timer")) {
return; return;
} }

7
designer/src/com/fr/design/mainframe/alphafine/AlphaFineHelper.java

@ -8,12 +8,15 @@ import com.fr.stable.StringUtils;
* Created by XiaXiang on 2017/5/8. * Created by XiaXiang on 2017/5/8.
*/ */
public class AlphaFineHelper { public class AlphaFineHelper {
private static AlphaFineDialog dialog;
/** /**
* 弹出alphafine搜索面板 * 弹出alphafine搜索面板
*/ */
public static void showAlphaFineDialog() { public static void showAlphaFineDialog(boolean forceOpen) {
AlphaFineDialog dialog = new AlphaFineDialog(DesignerContext.getDesignerFrame()); if (dialog == null) {
dialog = new AlphaFineDialog(DesignerContext.getDesignerFrame(), forceOpen);
}
dialog.setVisible(true); dialog.setVisible(true);
} }

16
designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java

@ -67,8 +67,10 @@ public class AlphaFineDialog extends UIDialog {
private JList searchResultList; private JList searchResultList;
private SearchListModel searchListModel; private SearchListModel searchListModel;
private SwingWorker searchWorker; private SwingWorker searchWorker;
//是否强制打开,因为面板是否关闭绑定了全局鼠标事件,这里需要处理一下
private boolean foreOpen;
public AlphaFineDialog(Frame parent) { public AlphaFineDialog(Frame parent, boolean foreOpen) {
super(parent); super(parent);
initProperties(); initProperties();
initListener(); initListener();
@ -485,8 +487,9 @@ public class AlphaFineDialog extends UIDialog {
Point p = k.getLocationOnScreen(); Point p = k.getLocationOnScreen();
Rectangle dialogRectangle = AlphaFineDialog.this.getBounds(); Rectangle dialogRectangle = AlphaFineDialog.this.getBounds();
Rectangle paneRectangle = new Rectangle(AlphaFinePane.createAlphaFinePane().getLocationOnScreen(), AlphaFinePane.createAlphaFinePane().getSize()); Rectangle paneRectangle = new Rectangle(AlphaFinePane.createAlphaFinePane().getLocationOnScreen(), AlphaFinePane.createAlphaFinePane().getSize());
if (!dialogRectangle.contains(p) && !paneRectangle.contains(p)) { if (!dialogRectangle.contains(p) && !paneRectangle.contains(p) && !foreOpen) {
AlphaFineDialog.this.dispose(); AlphaFineDialog.this.dispose();
foreOpen = false;
} }
} }
} }
@ -517,7 +520,7 @@ public class AlphaFineDialog extends UIDialog {
} }
private static void doClickAction() { private static void doClickAction() {
AlphaFineHelper.showAlphaFineDialog(); AlphaFineHelper.showAlphaFineDialog(false);
} }
@ -666,4 +669,11 @@ public class AlphaFineDialog extends UIDialog {
} }
public boolean isForeOpen() {
return foreOpen;
}
public void setForeOpen(boolean foreOpen) {
this.foreOpen = foreOpen;
}
} }

10
designer/src/com/fr/design/mainframe/alphafine/component/AlphaFinePane.java

@ -2,6 +2,8 @@ package com.fr.design.mainframe.alphafine.component;
import com.fr.base.BaseUtils; import com.fr.base.BaseUtils;
import com.fr.design.DesignerEnvManager; import com.fr.design.DesignerEnvManager;
import com.fr.design.actions.help.alphafine.AlphafineContext;
import com.fr.design.actions.help.alphafine.AlphafineListener;
import com.fr.design.dialog.BasicPane; import com.fr.design.dialog.BasicPane;
import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.mainframe.alphafine.AlphaFineHelper; import com.fr.design.mainframe.alphafine.AlphaFineHelper;
@ -37,7 +39,13 @@ public class AlphaFinePane extends BasicPane {
refreshButton.addActionListener(new ActionListener() { refreshButton.addActionListener(new ActionListener() {
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
AlphaFineHelper.showAlphaFineDialog(); AlphaFineHelper.showAlphaFineDialog(false);
}
});
AlphafineContext.addAlphafineContextListener(new AlphafineListener() {
@Override
public void showDialog() {
AlphaFineHelper.showAlphaFineDialog(true);
} }
}); });
} }

BIN
designer/src/com/fr/design/mainframe/alphafine/images/check.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
designer/src/com/fr/design/mainframe/alphafine/images/open.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
designer/src/com/fr/design/mainframe/alphafine/images/remind.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 KiB

BIN
designer/src/com/fr/design/mainframe/alphafine/images/remind_close.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
designer/src/com/fr/design/mainframe/alphafine/images/uncheck.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

4
designer/src/com/fr/design/mainframe/alphafine/search/manager/AlphaSearchManager.java

@ -37,12 +37,12 @@ public class AlphaSearchManager implements AlphaFineSearchProcessor {
@Override @Override
public synchronized SearchResult getLessSearchResult(String searchText) { public synchronized SearchResult getLessSearchResult(String searchText) {
SearchResult recentModelList = recentSearchManager.getLessSearchResult(searchText); SearchResult recentModelList = recentSearchManager.getLessSearchResult(searchText);
SearchResult concludeModelList = recommendSearchManager.getLessSearchResult(searchText); SearchResult recommendModelList = recommendSearchManager.getLessSearchResult(searchText);
SearchResult actionModelList = actionSearchManager.getLessSearchResult(searchText); SearchResult actionModelList = actionSearchManager.getLessSearchResult(searchText);
SearchResult fileModelList = fileSearchManager.getLessSearchResult(searchText); SearchResult fileModelList = fileSearchManager.getLessSearchResult(searchText);
SearchResult documentModelList = documentSearchManager.getLessSearchResult(searchText); SearchResult documentModelList = documentSearchManager.getLessSearchResult(searchText);
SearchResult pluginModelList = pluginSearchManager.getLessSearchResult(searchText); SearchResult pluginModelList = pluginSearchManager.getLessSearchResult(searchText);
recentModelList.addAll(concludeModelList); recentModelList.addAll(recommendModelList);
recentModelList.addAll(actionModelList); recentModelList.addAll(actionModelList);
recentModelList.addAll(fileModelList); recentModelList.addAll(fileModelList);
recentModelList.addAll(documentModelList); recentModelList.addAll(documentModelList);

5
designer/src/com/fr/design/mainframe/alphafine/search/manager/RecentSearchManager.java

@ -97,7 +97,10 @@ public class RecentSearchManager extends XMLFileManager implements AlphaFineSear
private void addModelToList(List<AlphaCellModel> list, String name) { private void addModelToList(List<AlphaCellModel> list, String name) {
try { try {
list.add(CellModelHelper.getModelFromJson(new JSONObject(name))); AlphaCellModel model = CellModelHelper.getModelFromJson(new JSONObject(name));
if (model != null) {
list.add(CellModelHelper.getModelFromJson(new JSONObject(name)));
}
} catch (JSONException e) { } catch (JSONException e) {
FRLogger.getLogger().error(e.getMessage()); FRLogger.getLogger().error(e.getMessage());
} }

32
designer_base/src/com/fr/aspectj/designerbase/AlphaFineReminder.aj

@ -1,5 +1,10 @@
package com.fr.aspectj.designerbase; package com.fr.aspectj.designerbase;
import com.fr.design.DesignerEnvManager;
import com.fr.design.actions.help.alphafine.AlphafineConfigManager;
import com.fr.design.actions.help.alphafine.RemindDialog;
import com.fr.design.mainframe.DesignerContext;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
/** /**
@ -15,9 +20,34 @@ public aspect AlphaFineReminder {
return; return;
} }
if (e != null && e.getSource().getClass().getName().equals("com.fr.design.gui.imenu.UIMenuItem") && point.contains("com.fr.design.actions")) { if (e != null && e.getSource().getClass().getName().equals("com.fr.design.gui.imenu.UIMenuItem") && point.contains("com.fr.design.actions")) {
//System.out.print(thisJoinPoint + "\n"); remind();
} }
} }
/**
* 判断是否弹出广告框
*/
private static void remind() {
AlphafineConfigManager manager = DesignerEnvManager.getEnvManager().getAlphafineConfigManager();
if (manager.isNeedRemind()) {
if (manager.getOperateCount() > 4) {
showReminderDialog();
} else {
manager.setOperateCount(manager.getOperateCount() + 1);
}
}
}
/**
* 弹框提醒使用AlphaFine
*/
private static void showReminderDialog() {
RemindDialog remindDialog = new RemindDialog(DesignerContext.getDesignerFrame());
remindDialog.setVisible(true);
}
} }

24
designer_base/src/com/fr/aspectj/designerbase/TemplateProcessTracker.aj

@ -5,29 +5,27 @@ package com.fr.aspectj.designerbase;
* Created by plough on 2017/3/3. * Created by plough on 2017/3/3.
*/ */
import com.fr.design.mainframe.templateinfo.TemplateInfoCollector;
import org.aspectj.lang.reflect.SourceLocation; import org.aspectj.lang.reflect.SourceLocation;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import java.util.Date;
public aspect TemplateProcessTracker { public aspect TemplateProcessTracker {
//声明一个pointcut,匹配你需要的方法 //声明一个pointcut,匹配你需要的方法
pointcut onMouseClicked(MouseEvent e) : pointcut onMouseClicked(MouseEvent e):
execution(* mouseClicked(MouseEvent)) && args(e); execution(* mouseClicked(MouseEvent)) && args(e);
pointcut onMousePressed(MouseEvent e) : pointcut onMousePressed(MouseEvent e):
execution(* mousePressed(MouseEvent)) && args(e); execution(* mousePressed(MouseEvent)) && args(e);
pointcut onMouseReleased(MouseEvent e) : pointcut onMouseReleased(MouseEvent e):
execution(* mouseReleased(MouseEvent)) && args(e); execution(* mouseReleased(MouseEvent)) && args(e);
pointcut onActionPerformed(ActionEvent e) : pointcut onActionPerformed(ActionEvent e):
execution(* actionPerformed(ActionEvent)) && args(e); execution(* actionPerformed(ActionEvent)) && args(e);
pointcut onSetValueAt(Object v, int r, int c) : pointcut onSetValueAt(Object v, int r, int c):
execution(* setValueAt(java.lang.Object, int, int)) && args(v, r, c); execution(* setValueAt(java.lang.Object, int, int)) && args(v, r, c);
//before表示之前的意思 //before表示之前的意思
//这整个表示在MouseAdapter的public void mouseXXX(MouseEvent)方法调用之前,你想要执行的代码 //这整个表示在MouseAdapter的public void mouseXXX(MouseEvent)方法调用之前,你想要执行的代码
before(MouseEvent e) : onMouseClicked(e) || onMousePressed(e) || onMouseReleased(e) { before(MouseEvent e): onMouseClicked(e) || onMousePressed(e) || onMouseReleased(e) {
SourceLocation sl = thisJoinPoint.getSourceLocation();//切面对应的代码位置 SourceLocation sl = thisJoinPoint.getSourceLocation();//切面对应的代码位置
//String log = String.format("%s:\n%s\n%s\n%s\n\n", new Date(), sl, e, e.getSource()); //String log = String.format("%s:\n%s\n%s\n%s\n\n", new Date(), sl, e, e.getSource());
@ -35,10 +33,10 @@ public aspect TemplateProcessTracker {
//TemplateInfoCollector.appendProcess(log); //TemplateInfoCollector.appendProcess(log);
} }
//同上 //同上
before(ActionEvent e) : onActionPerformed(e) { before(ActionEvent e): onActionPerformed(e) {
SourceLocation sl = thisJoinPoint.getSourceLocation(); SourceLocation sl = thisJoinPoint.getSourceLocation();
// !within(LogHandlerBar) 没用, 手动过滤 // !within(LogHandlerBar) 没用, 手动过滤
if (e.getSource().toString().contains("javax.swing.Timer")) { if (e != null && e.getSource().toString().contains("javax.swing.Timer")) {
return; return;
} }
@ -48,12 +46,12 @@ public aspect TemplateProcessTracker {
} }
//同上 //同上
before(Object v, int r, int c) : onSetValueAt(v, r, c) { before(Object v, int r, int c): onSetValueAt(v, r, c) {
SourceLocation sl = thisJoinPoint.getSourceLocation(); SourceLocation sl = thisJoinPoint.getSourceLocation();
//String log = String.format("%s:\n%s\nset value: %s at (%d, %d)\n\n", new Date(), sl, v, r, c); //String log getSourceLocation= String.format("%s:\n%s\nset value: %s at (%d, %d)\n\n", new Date(), sl, v, r, c);
String log = ""; String log = "";
// TemplateInfoCollector.appendProcess(log); // TemplateInfoCollector.appendProcess(log);
} }

2
designer_base/src/com/fr/design/DesignerEnvManager.java

@ -5,7 +5,7 @@ package com.fr.design;
import com.fr.base.*; import com.fr.base.*;
import com.fr.dav.LocalEnv; import com.fr.dav.LocalEnv;
import com.fr.design.actions.help.AlphaFine.AlphafineConfigManager; import com.fr.design.actions.help.alphafine.AlphafineConfigManager;
import com.fr.design.constants.UIConstants; import com.fr.design.constants.UIConstants;
import com.fr.env.RemoteEnv; import com.fr.env.RemoteEnv;
import com.fr.env.SignIn; import com.fr.env.SignIn;

2
designer_base/src/com/fr/design/actions/help/AboutPane.java

@ -47,7 +47,7 @@ public class AboutPane extends JPanel {
BoxCenterAlignmentCopyablePane buildCopyPane = new BoxCenterAlignmentCopyablePane( BoxCenterAlignmentCopyablePane buildCopyPane = new BoxCenterAlignmentCopyablePane(
getBuildTitle(), getBuildTitle(),
GeneralUtils.readFullBuildNO(), GeneralUtils.readBuildNO(),
new String[]{ new String[]{
Inter.getLocText("FR-Designer-Basic_Copy_Build_NO"), Inter.getLocText("FR-Designer-Basic_Copy_Build_NO"),
Inter.getLocText("FR-Designer-Basic_Copy_Build_NO_OK") Inter.getLocText("FR-Designer-Basic_Copy_Build_NO_OK")

3
designer_base/src/com/fr/design/actions/help/AlphaFine/AlphafineAction.java → designer_base/src/com/fr/design/actions/help/alphafine/AlphafineAction.java

@ -1,4 +1,4 @@
package com.fr.design.actions.help.AlphaFine; package com.fr.design.actions.help.alphafine;
import com.fr.base.BaseUtils; import com.fr.base.BaseUtils;
import com.fr.design.DesignerEnvManager; import com.fr.design.DesignerEnvManager;
@ -9,7 +9,6 @@ import com.fr.design.dialog.DialogActionListener;
import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.DesignerContext;
import com.fr.design.mainframe.DesignerFrame; import com.fr.design.mainframe.DesignerFrame;
import com.fr.design.menu.MenuKeySet; import com.fr.design.menu.MenuKeySet;
import com.fr.general.Inter;
import javax.swing.*; import javax.swing.*;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;

35
designer_base/src/com/fr/design/actions/help/AlphaFine/AlphafineConfigManager.java → designer_base/src/com/fr/design/actions/help/alphafine/AlphafineConfigManager.java

@ -1,4 +1,4 @@
package com.fr.design.actions.help.AlphaFine; package com.fr.design.actions.help.alphafine;
import com.fr.stable.OperatingSystem; import com.fr.stable.OperatingSystem;
import com.fr.stable.StringUtils; import com.fr.stable.StringUtils;
@ -67,6 +67,15 @@ public class AlphafineConfigManager implements XMLable {
*/ */
private KeyStroke shortCutKeyStore; private KeyStroke shortCutKeyStore;
/**
* 是否提醒
*/
private boolean isNeedRemind = true;
/**
* 直接操作菜单次数
*/
private int operateCount;
@ -92,7 +101,9 @@ public class AlphafineConfigManager implements XMLable {
this.setContainAction(reader.getAttrAsBoolean("isContainAction", true)); this.setContainAction(reader.getAttrAsBoolean("isContainAction", true));
this.setContainTemplate(reader.getAttrAsBoolean("isContainTemplate", true)); this.setContainTemplate(reader.getAttrAsBoolean("isContainTemplate", true));
this.setContainFileContent(reader.getAttrAsBoolean("isContainFileContent", false)); this.setContainFileContent(reader.getAttrAsBoolean("isContainFileContent", false));
this.setShortcuts(reader.getAttrAsString("shortcuts", "meta + f")); this.setShortcuts(reader.getAttrAsString("shortcuts", getDefaultShortCuts()));
this.setNeedRemind(reader.getAttrAsBoolean("isNeedRemind", true));
this.setOperateCount(reader.getAttrAsInt("operateCount", 0));
} }
@ -109,7 +120,9 @@ public class AlphafineConfigManager implements XMLable {
.attr("isContainDocument", this.isContainDocument()) .attr("isContainDocument", this.isContainDocument())
.attr("isContainTemplate", this.isContainTemplate()) .attr("isContainTemplate", this.isContainTemplate())
.attr("isContainPlugin", this.isContainPlugin()) .attr("isContainPlugin", this.isContainPlugin())
.attr("isContainFileContent", this.isContainFileContent()); .attr("isContainFileContent", this.isContainFileContent())
.attr("isNeedRemind", this.isNeedRemind())
.attr("operateCount", this.getOperateCount());
writer.end(); writer.end();
} }
@ -214,4 +227,20 @@ public class AlphafineConfigManager implements XMLable {
public void setContainFileContent(boolean containFileContent) { public void setContainFileContent(boolean containFileContent) {
isContainFileContent = containFileContent; isContainFileContent = containFileContent;
} }
public boolean isNeedRemind() {
return isNeedRemind;
}
public void setNeedRemind(boolean needRemind) {
isNeedRemind = needRemind;
}
public int getOperateCount() {
return operateCount;
}
public void setOperateCount(int operateCount) {
this.operateCount = operateCount;
}
} }

2
designer_base/src/com/fr/design/actions/help/AlphaFine/AlphafineConfigPane.java → designer_base/src/com/fr/design/actions/help/alphafine/AlphafineConfigPane.java

@ -1,4 +1,4 @@
package com.fr.design.actions.help.AlphaFine; package com.fr.design.actions.help.alphafine;
import com.fr.design.DesignerEnvManager; import com.fr.design.DesignerEnvManager;
import com.fr.design.dialog.BasicPane; import com.fr.design.dialog.BasicPane;

29
designer_base/src/com/fr/design/actions/help/alphafine/AlphafineContext.java

@ -0,0 +1,29 @@
package com.fr.design.actions.help.alphafine;
import java.util.ArrayList;
import java.util.List;
/**
* Created by XiaXiang on 2017/5/27.
*/
public class AlphafineContext {
private static List<AlphafineListener> fireLoginContextListener = new ArrayList<AlphafineListener>();
/**
* 触发AlphaFine弹窗
*/
public static void fireAlphaFineContextListener() {
for (AlphafineListener l : fireLoginContextListener) {
l.showDialog();
}
}
/**
* 添加一个弹出AlphaFine的监听事件
*
* @param l AlphaFine框弹出监听事件
*/
public static void addAlphafineContextListener(AlphafineListener l) {
fireLoginContextListener.add(l);
}
}

8
designer_base/src/com/fr/design/actions/help/alphafine/AlphafineListener.java

@ -0,0 +1,8 @@
package com.fr.design.actions.help.alphafine;
/**
* Created by XiaXiang on 2017/5/27.
*/
public interface AlphafineListener {
void showDialog();
}

43
designer_base/src/com/fr/design/actions/help/alphafine/RemindDialog.java

@ -0,0 +1,43 @@
package com.fr.design.actions.help.alphafine;
import com.fr.design.DesignerEnvManager;
import com.fr.design.dialog.UIDialog;
import com.fr.design.utils.gui.GUICoreUtils;
import java.awt.*;
/**
* Created by XiaXiang on 2017/5/26.
*/
public class RemindDialog extends UIDialog {
private RemindPane remindPane;
private static final int WIDTH = 600;
private static final int HEIGHT = 400;
public RemindDialog(Frame parent) {
super(parent);
setUndecorated(true);
setSize(WIDTH, HEIGHT);
initComponent();
GUICoreUtils.centerWindow(this);
}
private void initComponent() {
final AlphafineConfigManager manager = DesignerEnvManager.getEnvManager().getAlphafineConfigManager();
remindPane = new RemindPane(manager, this);
this.add(remindPane);
}
@Override
public void checkValid() throws Exception {
}
public RemindPane getRemindPane() {
return remindPane;
}
public void setRemindPane(RemindPane remindPane) {
this.remindPane = remindPane;
}
}

146
designer_base/src/com/fr/design/actions/help/alphafine/RemindPane.java

@ -0,0 +1,146 @@
package com.fr.design.actions.help.alphafine;
import com.fr.design.dialog.UIDialog;
import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.gui.ilable.UILabel;
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;
/**
* Created by XiaXiang on 2017/5/26.
*/
public class RemindPane extends JPanel {
private UIButton openButton;
private JPanel backgroundPane;
private UILabel noRemindLabel;
private UILabel checkLabel;
private Icon checkIcon = IOUtils.readIcon("/com/fr/design/mainframe/alphafine/images/check.png");
private Icon unCheckIcon = IOUtils.readIcon("/com/fr/design/mainframe/alphafine/images/uncheck.png");
private Icon closeIcon = IOUtils.readIcon("/com/fr/design/mainframe/alphafine/images/remind_close.png");
private Icon labelIcon = IOUtils.readIcon("/com/fr/design/mainframe/alphafine/images/remind.png");
private Icon openIcon = IOUtils.readIcon("com/fr/design/mainframe/alphafine/images/open.png");
private static final int WIDTH = 600;
private static final int HEIGHT = 400;
private static final int CLOSE = 30;
private static final Rectangle OPEN = new Rectangle(30, 300, 150, 40);
private static final Rectangle REMIND = new Rectangle(95, 350, 100, 20);
private static final Rectangle CHECK = new Rectangle(70, 350, 20, 20);
public static final Font MEDIUM_FONT = new Font("Song_TypeFace", 0, 12);
public static final Font LARGE_FONT = new Font("Song_TypeFace", 0, 18);
public JComponent closeButton = new JComponent() {
protected void paintComponent(Graphics g) {
closeIcon.paintIcon(this, g, 0, 0);
}
};
public RemindPane(AlphafineConfigManager manager, UIDialog remindDialog) {
this.setPreferredSize(new Dimension(WIDTH, HEIGHT));
initUI(manager, remindDialog);
this.setLayout(getAbsoluteLayout());
}
/**
* 初始化面板
* @param manager
* @param dialog
*/
private void initUI(final AlphafineConfigManager manager, final UIDialog dialog) {
openButton = new UIButton();
openButton.setIcon(openIcon);
openButton.set4ToolbarButton();
openButton.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
manager.setOperateCount(0);
dialog.dispose();
AlphafineContext.fireAlphaFineContextListener();
}
});
noRemindLabel = new UILabel(Inter.getLocText("FR-Designer-Alphafine_No_Remind"));
noRemindLabel.setFont(MEDIUM_FONT);
noRemindLabel.setForeground(Color.white);
checkLabel = new UILabel();
checkLabel.setIcon(unCheckIcon);
checkLabel.addMouseListener(new MouseAdapter() {
private boolean isCheck = false;
@Override
public void mousePressed(MouseEvent e) {
if (isCheck) {
checkLabel.setIcon(unCheckIcon);
manager.setNeedRemind(true);
isCheck = false;
} else {
checkLabel.setIcon(checkIcon);
manager.setNeedRemind(false);
isCheck = true;
}
}
});
backgroundPane = new JPanel(new BorderLayout());
backgroundPane.add(new UILabel(labelIcon), BorderLayout.CENTER);
closeButton.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
manager.setOperateCount(0);
dialog.dispose();
}
});
add(closeButton, 0);
add(checkLabel, 1);
add(openButton, 2);
add(noRemindLabel, 3);
add(backgroundPane, 4);
}
/**
* 控件排列用绝对布局
* @return
*/
protected LayoutManager getAbsoluteLayout() {
return new LayoutManager() {
@Override
public void removeLayoutComponent(Component comp) {
}
@Override
public Dimension preferredLayoutSize(Container parent) {
return parent.getPreferredSize();
}
@Override
public Dimension minimumLayoutSize(Container parent) {
return null;
}
@Override
public void layoutContainer(Container parent) {
int width = parent.getWidth();
int height = parent.getHeight();
closeButton.setBounds((width - CLOSE), 0, CLOSE, CLOSE);
openButton.setBounds(OPEN);
noRemindLabel.setBounds(REMIND);
checkLabel.setBounds(CHECK);
backgroundPane.setBounds(0, 0, width, height);
}
@Override
public void addLayoutComponent(String name, Component comp) {
}
};
}
}

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

@ -2005,4 +2005,5 @@ FR-Designer_Templates_Content=Templates Contents
FR-Designer_AlphaFine_ShowAll=show all FR-Designer_AlphaFine_ShowAll=show all
FR-Designer_AlphaFine_Latest=Latest FR-Designer_AlphaFine_Latest=Latest
FR-Designer_AlphaFine_ShowLess=show less FR-Designer_AlphaFine_ShowLess=show less
FR-Designer_Alphafine=AlphaFine FR-Designer_Alphafine=AlphaFine
FR-Designer-Alphafine_No_Remind=

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

@ -2003,4 +2003,5 @@ FR-Designer_Templates_Content=Template'Contents
FR-Designer_AlphaFine_ShowAll=show all FR-Designer_AlphaFine_ShowAll=show all
FR-Designer_AlphaFine_Latest=Recent FR-Designer_AlphaFine_Latest=Recent
FR-Designer_AlphaFine_ShowLess=show less FR-Designer_AlphaFine_ShowLess=show less
FR-Designer_Alphafine=AlphaFine FR-Designer_Alphafine=AlphaFine
FR-Designer-Alphafine_No_Remind=don't remind

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

@ -2001,4 +2001,5 @@ FR-Designer_AlphaFine_ShowAll=\u663E\u793A\u5168\u90E8
FR-Designer_AlphaFine_Conclude=\u731C\u60A8\u9700\u8981 FR-Designer_AlphaFine_Conclude=\u731C\u60A8\u9700\u8981
FR-Designer_AlphaFine_Latest=\u672C\u5730\u5E38\u7528 FR-Designer_AlphaFine_Latest=\u672C\u5730\u5E38\u7528
FR-Designer_AlphaFine_ShowLess=\u6536\u8D77 FR-Designer_AlphaFine_ShowLess=\u6536\u8D77
FR-Designer_Alphafine=AlphaFine\u667A\u80FD\u641C\u7D22 FR-Designer_Alphafine=AlphaFine\u667A\u80FD\u641C\u7D22
FR-Designer-Alphafine_No_Remind=\u4E0D\u518D\u63D0\u793A

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

@ -1999,4 +1999,5 @@ FR-Designer_Templates_Content=\u6A21\u677F\u5167\u5BB9
FR-Designer_AlphaFine_Latest=\u6700\u8FD1\u5E38\u7528 FR-Designer_AlphaFine_Latest=\u6700\u8FD1\u5E38\u7528
FR-Designer_AlphaFine_ShowLess=\u6536\u8D77 FR-Designer_AlphaFine_ShowLess=\u6536\u8D77
FR-Designer_Alphafine=AlphaFine\u667A\u80FD\u641C\u7D22 FR-Designer_Alphafine=AlphaFine\u667A\u80FD\u641C\u7D22
FR-Designer_AlphaFine_ShowAll=\u986F\u793A\u5168\u90E8 FR-Designer_AlphaFine_ShowAll=\u986F\u793A\u5168\u90E8
FR-Designer-Alphafine_No_Remind=\u4E0D\u518D\u63D0\u793A

2
designer_base/src/com/fr/design/mainframe/loghandler/DesignerLogHandler.java

@ -187,7 +187,7 @@ public class DesignerLogHandler {
} }
private JTextPane initLogJTextArea() { private JTextPane initLogJTextArea() {
JTextPane resultPane = new JTextPane(); final JTextPane resultPane = new JTextPane();
InputMap inputMap = resultPane.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); InputMap inputMap = resultPane.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_C, DEFAULT_MODIFIER), DefaultEditorKit.copyAction); inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_C, DEFAULT_MODIFIER), DefaultEditorKit.copyAction);
inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_A, DEFAULT_MODIFIER), DefaultEditorKit.selectAllAction); inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_A, DEFAULT_MODIFIER), DefaultEditorKit.selectAllAction);

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

@ -11,7 +11,7 @@ import com.fr.design.actions.UpdateAction;
import com.fr.design.actions.community.*; import com.fr.design.actions.community.*;
import com.fr.design.actions.file.*; import com.fr.design.actions.file.*;
import com.fr.design.actions.help.AboutAction; import com.fr.design.actions.help.AboutAction;
import com.fr.design.actions.help.AlphaFine.AlphafineAction; import com.fr.design.actions.help.alphafine.AlphafineAction;
import com.fr.design.actions.help.TutorialAction; import com.fr.design.actions.help.TutorialAction;
import com.fr.design.actions.help.WebDemoAction; import com.fr.design.actions.help.WebDemoAction;
import com.fr.design.actions.server.*; import com.fr.design.actions.server.*;

2
designer_chart/src/com/fr/aspectj/designerchart/TemplateProcessTracker.aj

@ -38,7 +38,7 @@ public aspect TemplateProcessTracker {
before(ActionEvent e) : onActionPerformed(e) { before(ActionEvent e) : onActionPerformed(e) {
SourceLocation sl = thisJoinPoint.getSourceLocation(); SourceLocation sl = thisJoinPoint.getSourceLocation();
// !within(LogHandlerBar) 没用, 手动过滤 // !within(LogHandlerBar) 没用, 手动过滤
if (e.getSource().toString().contains("javax.swing.Timer")) { if (e != null && e.getSource().toString().contains("javax.swing.Timer")) {
return; return;
} }

2
designer_form/src/com/fr/aspectj/designerform/TemplateProcessTracker.aj

@ -36,7 +36,7 @@ public aspect TemplateProcessTracker {
before(ActionEvent e) : onActionPerformed(e) { before(ActionEvent e) : onActionPerformed(e) {
SourceLocation sl = thisJoinPoint.getSourceLocation(); SourceLocation sl = thisJoinPoint.getSourceLocation();
// !within(LogHandlerBar) 没用, 手动过滤 // !within(LogHandlerBar) 没用, 手动过滤
if (e.getSource().toString().contains("javax.swing.Timer")) { if (e != null && e.getSource().toString().contains("javax.swing.Timer")) {
return; return;
} }

Loading…
Cancel
Save