diff --git a/designer-base/src/main/java/com/fr/design/EnvChangeEntrance.java b/designer-base/src/main/java/com/fr/design/EnvChangeEntrance.java
index 4ab6b30896..f386437376 100644
--- a/designer-base/src/main/java/com/fr/design/EnvChangeEntrance.java
+++ b/designer-base/src/main/java/com/fr/design/EnvChangeEntrance.java
@@ -17,6 +17,7 @@ import com.fr.design.file.TemplateTreePane;
import com.fr.design.i18n.Toolkit;
import com.fr.design.mainframe.DesignerContext;
import com.fr.design.mainframe.JTemplate;
+import com.fr.design.notification.NotificationCenter;
import com.fr.design.utils.DesignUtils;
import com.fr.design.versioncheck.VersionCheckUtils;
import com.fr.env.EnvListPane;
@@ -182,6 +183,7 @@ public class EnvChangeEntrance {
if (model != null) {
model.envChanged();
}
+ NotificationCenter.getInstance().clearAllNotifications();
return true;
}
diff --git a/designer-base/src/main/java/com/fr/design/dialog/NotificationDialog.java b/designer-base/src/main/java/com/fr/design/dialog/NotificationDialog.java
index 4b18ab3e04..b3398c53db 100644
--- a/designer-base/src/main/java/com/fr/design/dialog/NotificationDialog.java
+++ b/designer-base/src/main/java/com/fr/design/dialog/NotificationDialog.java
@@ -1,12 +1,14 @@
package com.fr.design.dialog;
+import com.fr.concurrent.NamedThreadFactory;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.i18n.Toolkit;
import com.fr.design.layout.FRGUIPaneFactory;
+import com.fr.design.mainframe.DesignerContext;
import com.fr.design.notification.Notification;
import com.fr.design.notification.NotificationCenter;
-import com.fr.design.utils.gui.GUICoreUtils;
+import com.fr.module.ModuleContext;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
@@ -14,6 +16,8 @@ import java.awt.Frame;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
import javax.swing.BorderFactory;
import javax.swing.Icon;
import javax.swing.JDialog;
@@ -24,7 +28,6 @@ import javax.swing.UIManager;
/**
* 带查看详情的简要通知框
- *
*/
public class NotificationDialog extends JDialog {
public static final int ERROR_MESSAGE = 0;
@@ -32,13 +35,15 @@ public class NotificationDialog extends JDialog {
public static final int WARNING_MESSAGE = 2;
public static final String HTML_TAG_1 = "";
public static final String HTML_TAG_2 = "";
+ private static final String HIDE_MSG = "HIDE_MSG_TIMER";
private UILabel messageText;
private NotificationDialogAction notificationDialogAction;
+ private ScheduledExecutorService TIMER;
- public NotificationDialog(Frame owner, String title, boolean isModal, int messageType, String message,NotificationDialogAction action) {
+ public NotificationDialog(Frame owner, String title, boolean isModal, int messageType, String message, NotificationDialogAction action) {
super(owner);
setTitle(title);
- initComponents(messageType, message, isModal,action);
+ initComponents(messageType, message, isModal, action);
}
public NotificationDialog(Builder builder) {
@@ -47,27 +52,32 @@ public class NotificationDialog extends JDialog {
initComponents(builder.messageType, builder.message, builder.modal, builder.action);
}
- public void initComponents(int messageType, String message, boolean isModal,NotificationDialogAction action) {
- NotificationCenter.getInstance().addNotification(new Notification(messageType,message,action));
+ public void initComponents(int messageType, String message, boolean isModal, NotificationDialogAction action) {
+ NotificationCenter.getInstance().addNotification(new Notification(messageType, message, action));
notificationDialogAction = action;
setModal(isModal);
+ setFocusable(false);
+ setAutoRequestFocus(false);
setResizable(false);
+ JPanel body = FRGUIPaneFactory.createBorderLayout_L_Pane();
+ body.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
//消息内容
UILabel icon = new UILabel(getIconForType(messageType));
JPanel iconPanel = FRGUIPaneFactory.createBorderLayout_L_Pane();
- iconPanel.setBorder(BorderFactory.createEmptyBorder(0, 10, 10, 8));
+ iconPanel.setBorder(BorderFactory.createEmptyBorder(0, 5, 10, 8));
iconPanel.add(icon);
- add(iconPanel, BorderLayout.WEST);
+ body.add(iconPanel, BorderLayout.WEST);
messageText = new UILabel(HTML_TAG_1 + message + HTML_TAG_2);
messageText.setForeground(new Color(51, 51, 52));
JPanel centerPanel = FRGUIPaneFactory.createBorderLayout_L_Pane();
- centerPanel.setBorder(BorderFactory.createEmptyBorder(10, 0, 10, 10));
+ centerPanel.setBorder(BorderFactory.createEmptyBorder(8, 0, 5, 20));
JScrollPane jScrollPane = new JScrollPane(messageText, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
jScrollPane.setBorder(BorderFactory.createEmptyBorder());
centerPanel.add(jScrollPane, BorderLayout.CENTER);
- add(centerPanel, BorderLayout.CENTER);
+ centerPanel.setPreferredSize(new Dimension(230, 95));
+ body.add(centerPanel, BorderLayout.CENTER);
//查看详情
UILabel detailLabel = new UILabel();
@@ -75,37 +85,67 @@ public class NotificationDialog extends JDialog {
detailLabel.setForeground(Color.BLUE);
JPanel detailPanel = FRGUIPaneFactory.createBorderLayout_L_Pane();
detailPanel.add(detailLabel, BorderLayout.EAST);
- add(detailPanel, BorderLayout.SOUTH);
- setPreferredSize(new Dimension(262, 135));
+ body.add(detailPanel, BorderLayout.SOUTH);
detailLabel.addMouseListener(detailClickListener);
messageText.addMouseListener(detailClickListener);
-
- pack();
- if (getOwner() != null) {
- GUICoreUtils.setWindowCenter(getOwner(), this);
- }
+ addMouseListener(bodyMouseListener);
+
+ add(body);
+ Dimension dimension = body.getPreferredSize();
+ setSize(dimension.width, dimension.height);
+ setLocation((DesignerContext.getDesignerFrame().getWidth() - dimension.width - 30 + DesignerContext.getDesignerFrame().getX()),
+ DesignerContext.getDesignerFrame().getY() + DesignerContext.getDesignerFrame().getHeight() - dimension.height - 30);
+ disappear();
}
private MouseListener detailClickListener = new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
- if(notificationDialogAction != null){
+ if (notificationDialogAction != null) {
hideDialog();
notificationDialogAction.doClick();
}
}
};
+ private MouseListener bodyMouseListener = new MouseAdapter() {
+ @Override
+ public void mouseEntered(MouseEvent e) {
+ if (TIMER != null) {
+ TIMER.shutdownNow();
+ }
+ }
+
+ @Override
+ public void mouseExited(MouseEvent e) {
+ disappear();
+ }
+ };
+
+ public void disappear() {
+ TIMER = createScheduleExecutorService();
+ TIMER.schedule(new Runnable() {
+ @Override
+ public void run() {
+ hideDialog();
+ }
+ }, 10000, TimeUnit.MILLISECONDS);
+ }
+
+ private ScheduledExecutorService createScheduleExecutorService() {
+ return ModuleContext.getExecutor().newSingleThreadScheduledExecutor(new NamedThreadFactory(HIDE_MSG));
+ }
/**
* 设置通知消息
*/
- public void setMessage(String message){
+ public void setMessage(String message) {
messageText.setText(HTML_TAG_1 + message + HTML_TAG_2);
}
- private void hideDialog(){
+ private void hideDialog() {
+ this.setVisible(false);
this.dispose();
}
@@ -138,6 +178,7 @@ public class NotificationDialog extends JDialog {
public Frame owner = null;
public String title;
public NotificationDialogAction action;
+
private Builder() {
}
diff --git a/designer-base/src/main/java/com/fr/design/gui/icontainer/UIEastResizableContainer.java b/designer-base/src/main/java/com/fr/design/gui/icontainer/UIEastResizableContainer.java
index 77407a3eda..125cd3aa16 100644
--- a/designer-base/src/main/java/com/fr/design/gui/icontainer/UIEastResizableContainer.java
+++ b/designer-base/src/main/java/com/fr/design/gui/icontainer/UIEastResizableContainer.java
@@ -172,7 +172,7 @@ public class UIEastResizableContainer extends JPanel {
leftPane.setBounds(0, topToolPaneHeight, leftPaneWidth, getHeight() - topToolPaneHeight);
// parameterPane.setBounds(20, 0, 230, getParameterPaneHeight());//10,0,230,462
- rightPane.setBounds(leftPaneWidth, 0, containerWidth-leftPaneWidth, getHeight());//20,0,230,0
+ rightPane.setBounds(leftPaneWidth, 0, containerWidth - leftPaneWidth, getHeight());//20,0,230,0
}
@Override
@@ -242,7 +242,27 @@ public class UIEastResizableContainer extends JPanel {
* 伸缩右子面板时,触发此方法
*/
public void onResize() {
- // do nothing here
+ refreshContainer();
+ if (DesignModeContext.isAuthorityEditing()) {
+ DesignerContext.getDesignerFrame().doResize();
+ }
+ }
+
+ public void showContainer() {
+ if (containerWidth != leftPaneWidth) {
+ return;
+ }
+ containerWidth = preferredWidth;
+ onResize();
+ }
+
+ public void hideContainer() {
+ if (containerWidth == leftPaneWidth) {
+ return;
+ }
+ setPreferredWidth(containerWidth);
+ containerWidth = leftPaneWidth;
+ onResize();
}
private class TopToolPane extends JPanel {
@@ -281,15 +301,9 @@ public class UIEastResizableContainer extends JPanel {
public void mouseClicked(MouseEvent e) {
if (e.getX() <= ARROW_RANGE) {
if (containerWidth == leftPaneWidth) {
- containerWidth = preferredWidth;
+ showContainer();
} else {
- setPreferredWidth(containerWidth);
- containerWidth = leftPaneWidth;
- }
- onResize();
- refreshContainer();
- if (DesignModeContext.isAuthorityEditing()) {
- DesignerContext.getDesignerFrame().doResize();
+ hideContainer();
}
}
}
@@ -316,5 +330,4 @@ public class UIEastResizableContainer extends JPanel {
g.drawImage(button, 18, 7, 5, 10, null);
}
}
-
}
\ No newline at end of file
diff --git a/designer-base/src/main/java/com/fr/design/login/message/DesignerMessageHelper.java b/designer-base/src/main/java/com/fr/design/login/message/DesignerMessageHelper.java
index dbb2d69c44..68072b9402 100644
--- a/designer-base/src/main/java/com/fr/design/login/message/DesignerMessageHelper.java
+++ b/designer-base/src/main/java/com/fr/design/login/message/DesignerMessageHelper.java
@@ -90,7 +90,7 @@ public class DesignerMessageHelper {
NotificationDialog.Builder()
.owner(DesignerContext.getDesignerFrame())
.title(title)
- .modal(true)
+ .modal(false)
.messageType(NotificationDialog.NEW_MESSAGE)
.message(body)
.notificationDialogAction(new NotificationDialogAction() {
@@ -107,7 +107,7 @@ public class DesignerMessageHelper {
NotificationDialog.Builder()
.owner(DesignerContext.getDesignerFrame())
.title(title)
- .modal(true)
+ .modal(false)
.messageType(NotificationDialog.NEW_MESSAGE)
.message(body)
.notificationDialogAction(designerModuleClickType.getAction())
diff --git a/designer-base/src/main/java/com/fr/design/login/message/DesignerModuleClickType.java b/designer-base/src/main/java/com/fr/design/login/message/DesignerModuleClickType.java
index 85b8983f11..fb7ff4d0c3 100644
--- a/designer-base/src/main/java/com/fr/design/login/message/DesignerModuleClickType.java
+++ b/designer-base/src/main/java/com/fr/design/login/message/DesignerModuleClickType.java
@@ -3,11 +3,16 @@ package com.fr.design.login.message;
import com.fr.config.ServerPreferenceConfig;
import com.fr.design.dialog.NotificationDialogAction;
import com.fr.design.extra.WebViewDlgHelper;
+import com.fr.design.mainframe.BaseJForm;
+import com.fr.design.mainframe.DesignerContext;
+import com.fr.design.mainframe.EastRegionContainerPane;
+import com.fr.design.mainframe.JTemplate;
import com.fr.design.os.impl.SupportOSImpl;
import com.fr.design.upm.UpmFinder;
import com.fr.design.utils.DesignUtils;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils;
+import com.fr.stable.bridge.StableFactory;
import com.fr.stable.os.Arch;
import com.fr.stable.os.OperatingSystem;
@@ -39,7 +44,10 @@ public enum DesignerModuleClickType {
@Override
public void doClick() {
try {
- // TODO
+ BaseJForm jform = StableFactory.getMarkedInstanceObjectFromClass(BaseJForm.XML_TAG, BaseJForm.class);
+ DesignerContext.getDesignerFrame().addAndActivateJTemplate((JTemplate, ?>) jform);
+ EastRegionContainerPane.getInstance().showContainer();
+ EastRegionContainerPane.getInstance().switchTabTo(EastRegionContainerPane.KEY_WIDGET_LIB);
} catch (Exception e) {
FineLoggerFactory.getLogger().error(e.getMessage(), e);
}
diff --git a/designer-base/src/main/java/com/fr/design/notification/ui/NotificationCenterDialog.java b/designer-base/src/main/java/com/fr/design/notification/ui/NotificationCenterDialog.java
index 3048959c57..de6374a801 100644
--- a/designer-base/src/main/java/com/fr/design/notification/ui/NotificationCenterDialog.java
+++ b/designer-base/src/main/java/com/fr/design/notification/ui/NotificationCenterDialog.java
@@ -15,8 +15,9 @@ import java.awt.Window;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
import java.util.ArrayList;
-import java.util.List;
import javax.swing.BorderFactory;
import javax.swing.Icon;
import javax.swing.JDialog;
@@ -32,10 +33,16 @@ public class NotificationCenterDialog extends JDialog {
private static final int NOTIFICATIONCOUNT = 5;
public NotificationCenterDialog(Frame parent) {
- super(parent, true);
+ super(parent);
setTitle(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Notification"));
setResizable(false);
notificationNeedShow = new ArrayList<>();
+ addWindowFocusListener(new WindowAdapter() {
+ @Override
+ public void windowLostFocus(WindowEvent e) {
+ hideDialog();
+ }
+ });
initComponents();
}
diff --git a/designer-base/src/main/java/com/fr/design/notification/ui/NotificationCenterPane.java b/designer-base/src/main/java/com/fr/design/notification/ui/NotificationCenterPane.java
index d0f09df00f..f5af0bfc06 100644
--- a/designer-base/src/main/java/com/fr/design/notification/ui/NotificationCenterPane.java
+++ b/designer-base/src/main/java/com/fr/design/notification/ui/NotificationCenterPane.java
@@ -20,7 +20,7 @@ public class NotificationCenterPane extends BasicPane {
setPreferredSize(new Dimension(24, 24));
setLayout(new BorderLayout());
notificationCenterButton = new UIButton();
- notificationCenterButton.setIcon(IOUtils.readIcon("/com/fr/design/mainframe/notificationcenter/notificationCenter.png"));
+ notificationCenterButton.setIcon(IOUtils.readIcon("/com/fr/design/notification/ui/notificationCenter.png"));
notificationCenterButton.setToolTipText(Toolkit.i18nText("Fine-Design_Basic_Show_Notification"));
notificationCenterButton.set4ToolbarButton();
notificationCenterButton.setRolloverEnabled(false);
@@ -41,9 +41,9 @@ public class NotificationCenterPane extends BasicPane {
public void refreshButton() {
if (NotificationCenter.getInstance().getNotificationsCount() > 0) {
- notificationCenterButton.setIcon(IOUtils.readIcon("/com/fr/design/mainframe/notificationcenter/notificationCenterDot.png"));
+ notificationCenterButton.setIcon(IOUtils.readIcon("/com/fr/design/notification/ui/notificationCenterDot.png"));
} else {
- notificationCenterButton.setIcon(IOUtils.readIcon("/com/fr/design/mainframe/notificationcenter/notificationCenter.png"));
+ notificationCenterButton.setIcon(IOUtils.readIcon("/com/fr/design/notification/ui/notificationCenter.png"));
}
}
diff --git a/designer-base/src/main/java/com/fr/design/versioncheck/VersionCheckUtils.java b/designer-base/src/main/java/com/fr/design/versioncheck/VersionCheckUtils.java
index daf6452701..26406b3854 100644
--- a/designer-base/src/main/java/com/fr/design/versioncheck/VersionCheckUtils.java
+++ b/designer-base/src/main/java/com/fr/design/versioncheck/VersionCheckUtils.java
@@ -73,7 +73,7 @@ public class VersionCheckUtils {
public static void showVersionCheckDialog(String envName) {
if (!VersionCheckUtils.versionCheck(envName)) {
NotificationDialog notificationDialog = new NotificationDialog(DesignerContext.getDesignerFrame(), Toolkit.i18nText("Fine-Design_Basic_Sync_Prompt"),
- true, NotificationDialog.WARNING_MESSAGE, Toolkit.i18nText("Fine-Design_Basic_Sync_Check_Brief_Info"), new NotificationDialogAction() {
+ false, NotificationDialog.WARNING_MESSAGE, Toolkit.i18nText("Fine-Design_Basic_Sync_Check_Brief_Info"), new NotificationDialogAction() {
@Override
public void doClick() {
CheckServiceDialog checkServiceDialog = new CheckServiceDialog(DesignerContext.getDesignerFrame(), GeneralUtils.readFullBuildNO(), getRemoteBranch(envName),getNoExistServiceDescription(envName));
diff --git a/designer-base/src/main/resources/com/fr/design/login/guide.html b/designer-base/src/main/resources/com/fr/design/login/guide.html
index aeb50ce18b..aada842a10 100644
--- a/designer-base/src/main/resources/com/fr/design/login/guide.html
+++ b/designer-base/src/main/resources/com/fr/design/login/guide.html
@@ -14,12 +14,13 @@
-
-
+