From 0a683ff5a08fce360b2804bea3df9b9042127ce5 Mon Sep 17 00:00:00 2001 From: kerry Date: Fri, 1 Jun 2018 11:46:19 +0800 Subject: [PATCH 01/10] =?UTF-8?q?REPORT-8349=20=E9=80=82=E9=85=8D=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0=E6=8F=92=E4=BB=B6=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/extra/PluginUtils.java | 47 ++++++++++++++ .../com/fr/design/extra/PluginWebBridge.java | 7 ++- .../com/fr/design/extra/PluginWebPane.java | 63 +++++++++++++++---- .../com/fr/design/extra/WebViewDlgHelper.java | 6 +- .../exe/GetInstalledPluginsExecutor.java | 40 ++++++++++++ 5 files changed, 145 insertions(+), 18 deletions(-) create mode 100644 designer-base/src/com/fr/design/extra/exe/GetInstalledPluginsExecutor.java diff --git a/designer-base/src/com/fr/design/extra/PluginUtils.java b/designer-base/src/com/fr/design/extra/PluginUtils.java index f4403c7fc0..9c18affd49 100644 --- a/designer-base/src/com/fr/design/extra/PluginUtils.java +++ b/designer-base/src/com/fr/design/extra/PluginUtils.java @@ -25,6 +25,8 @@ import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URLDecoder; +import java.text.SimpleDateFormat; +import java.util.Calendar; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -206,4 +208,49 @@ public class PluginUtils { private static boolean isCompatibleCurrentEnv(String envVersion){ return VersionIntervalFactory.create(envVersion).contain(Version.currentEnvVersion()); } + + + public static JSONArray transferPluginToJson(PluginContext [] pluginContexts){ + JSONArray ja = JSONArray.create(); + try { + for(PluginContext pluginContext : pluginContexts){ + JSONObject jo = JSONObject.create(); + jo.put("id", pluginContext.getID()); + jo.put("name", pluginContext.getName()); + jo.put("version", pluginContext.getVersion()); + jo.put("envVersion", pluginContext.getEnvVersion()); + jo.put("description", pluginContext.getDescription()); + jo.put("changeNotes", pluginContext.getChangeNotes()); + jo.put("vendor", pluginContext.getVendor()); + jo.put("price", pluginContext.getPrice()); + jo.put("jarTime", pluginContext.getRequiredJarTime()); + jo.put("isActive", pluginContext.isActive()); + jo.put("isHidden", pluginContext.isHidden()); + jo.put("isFree", pluginContext.isFree()); + jo.put("isLicDamage", pluginContext.isLicDamaged()); + jo.put("isAvailable", pluginContext.isAvailable()); + jo.put("leftTime", String.valueOf(pluginContext.getLeftDays())); + jo.put("isTrial", pluginContext.isOnTrial()); + jo.put("deadline", getDeadline(pluginContext)); + jo.put("isRegisterFailed", pluginContext.isRegisterFailed()); + ja.put(jo); + } + }catch (Exception e){ + + } + return ja; + } + + private static String getDeadline(PluginContext plugin) { + + int leftDays = plugin.getLeftDays(); + if (leftDays == Integer.MAX_VALUE) { + return Inter.getLocText("FR-Plugin-Store_Permanent"); + } + Calendar deadline = Calendar.getInstance(); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + deadline.add(Calendar.DATE, leftDays); + return format.format(deadline.getTime()); + } + } diff --git a/designer-base/src/com/fr/design/extra/PluginWebBridge.java b/designer-base/src/com/fr/design/extra/PluginWebBridge.java index 77ebec10a9..b2541fa30b 100644 --- a/designer-base/src/com/fr/design/extra/PluginWebBridge.java +++ b/designer-base/src/com/fr/design/extra/PluginWebBridge.java @@ -5,6 +5,7 @@ import com.fr.config.MarketConfig; import com.fr.design.RestartHelper; import com.fr.design.bbs.BBSLoginUtils; import com.fr.design.dialog.UIDialog; +import com.fr.design.extra.exe.GetInstalledPluginsExecutor; import com.fr.design.extra.exe.GetPluginCategoriesExecutor; import com.fr.design.extra.exe.GetPluginFromStoreExecutor; import com.fr.design.extra.exe.GetPluginPrefixExecutor; @@ -303,9 +304,9 @@ public class PluginWebBridge { * * @return 已安装的插件组成的数组 */ - public PluginContext[] getInstalledPlugins() { - List plugins = PluginManager.getContexts(); - return plugins.toArray(new PluginContext[plugins.size()]); + public void getInstalledPlugins(final JSObject callback) { + Task task = new PluginTask<>(webEngine, callback, new GetInstalledPluginsExecutor()); + threadPoolExecutor.submit(task); } private String[] jsObjectToStringArray(JSObject obj) { diff --git a/designer-base/src/com/fr/design/extra/PluginWebPane.java b/designer-base/src/com/fr/design/extra/PluginWebPane.java index ce32babc79..44006c8548 100644 --- a/designer-base/src/com/fr/design/extra/PluginWebPane.java +++ b/designer-base/src/com/fr/design/extra/PluginWebPane.java @@ -1,5 +1,9 @@ package com.fr.design.extra; +import com.fr.base.TemplateUtils; +import com.fr.general.IOUtils; +import com.fr.stable.StableUtils; +import com.fr.stable.StringUtils; import javafx.application.Platform; import javafx.embed.swing.JFXPanel; import javafx.event.EventHandler; @@ -10,7 +14,15 @@ import javafx.scene.web.WebEvent; import javafx.scene.web.WebView; import netscape.javascript.JSObject; -import javax.swing.*; +import javax.swing.JOptionPane; +import javax.swing.SwingUtilities; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.URLEncoder; +import java.util.HashMap; +import java.util.Map; /** * Created by richie on 16/3/19. @@ -19,7 +31,7 @@ public class PluginWebPane extends JFXPanel { private WebEngine webEngine; - public PluginWebPane(final String mainJs) { + public PluginWebPane(final String installHome, final String mainJs) { Platform.setImplicitExit(false); Platform.runLater(new Runnable() { @Override @@ -29,17 +41,44 @@ public class PluginWebPane extends JFXPanel { PluginWebPane.this.setScene(scene); WebView webView = new WebView(); webEngine = webView.getEngine(); - webEngine.load("file:///" + mainJs); - webEngine.setOnAlert(new EventHandler>() { - @Override - public void handle(WebEvent event) { - showAlert(event.getData()); + try{ + InputStream inp = IOUtils.readResource(StableUtils.pathJoin(installHome, mainJs)); + if (inp == null) { + throw new IOException("Not found template: " + mainJs); } - }); - JSObject obj = (JSObject) webEngine.executeScript("window"); - obj.setMember("PluginHelper", PluginWebBridge.getHelper(webEngine)); - webView.setContextMenuEnabled(false);//屏蔽右键 - root.setCenter(webView); + BufferedReader reader = new BufferedReader(new InputStreamReader(inp, StableUtils.RESOURCE_ENCODER)); + BufferedReader read = new BufferedReader(reader); + StringBuffer sb = new StringBuffer(); + String line; + Map map4Tpl = new HashMap(); + + map4Tpl.put("servletURL", "file:///" + URLEncoder.encode(installHome, "UTF-8")); + while ((line = read.readLine()) != null) { + if (sb.length() > 0) { + sb.append('\n'); + } + sb.append(line); + } + + String htmlString = TemplateUtils.renderParameter4Tpl(sb.toString(), map4Tpl); + reader.close(); + inp.close(); + webEngine.loadContent(htmlString); + + webEngine.setOnAlert(new EventHandler>() { + @Override + public void handle(WebEvent event) { + showAlert(event.getData()); + } + }); + JSObject obj = (JSObject) webEngine.executeScript("window"); + obj.setMember("PluginHelper", PluginWebBridge.getHelper(webEngine)); + webView.setContextMenuEnabled(false);//屏蔽右键 + root.setCenter(webView); + }catch (Exception e){ + + } + } }); } diff --git a/designer-base/src/com/fr/design/extra/WebViewDlgHelper.java b/designer-base/src/com/fr/design/extra/WebViewDlgHelper.java index 59fb612765..10643e6f26 100644 --- a/designer-base/src/com/fr/design/extra/WebViewDlgHelper.java +++ b/designer-base/src/com/fr/design/extra/WebViewDlgHelper.java @@ -70,7 +70,7 @@ public class WebViewDlgHelper { String indexPath = "plugin.html"; String mainIndexPath = StableUtils.pathJoin(installHome, indexPath); checkAndCopyMainFile(mainIndexPath, mainJsPath); - showPluginDlg(mainIndexPath); + showPluginDlg(indexPath); updateShopScripts(SHOP_SCRIPTS); } } else { @@ -167,8 +167,8 @@ public class WebViewDlgHelper { private static void showPluginDlg(String mainJsPath) { try { Class clazz = Class.forName("com.fr.design.extra.PluginWebPane"); - Constructor constructor = clazz.getConstructor(String.class); - Component webPane = (Component) constructor.newInstance(mainJsPath); + Constructor constructor = clazz.getConstructor(String.class, String.class); + Component webPane = (Component) constructor.newInstance(installHome, mainJsPath); BasicPane managerPane = new ShopManagerPane(webPane); UIDialog dlg = new ShopDialog(DesignerContext.getDesignerFrame(), managerPane); diff --git a/designer-base/src/com/fr/design/extra/exe/GetInstalledPluginsExecutor.java b/designer-base/src/com/fr/design/extra/exe/GetInstalledPluginsExecutor.java new file mode 100644 index 0000000000..0b9b2f43f2 --- /dev/null +++ b/designer-base/src/com/fr/design/extra/exe/GetInstalledPluginsExecutor.java @@ -0,0 +1,40 @@ +package com.fr.design.extra.exe; + +import com.fr.design.extra.PluginUtils; +import com.fr.design.extra.Process; +import com.fr.json.JSONArray; +import com.fr.plugin.context.PluginContext; +import com.fr.plugin.manage.PluginManager; + +import java.util.List; + +/** + * @author kerry + * @date 2018/6/1 + */ +public class GetInstalledPluginsExecutor implements Executor { + private String result ="[]"; + @Override + public String getTaskFinishMessage() { + return result; + } + + @Override + public Command[] getCommands() { + return new Command[]{ + new Command() { + @Override + public String getExecuteMessage() { + return null; + } + + @Override + public void run(Process process) { + List plugins = PluginManager.getContexts(); + JSONArray ja = PluginUtils.transferPluginToJson(plugins.toArray(new PluginContext[plugins.size()])); + result = ja.toString(); + } + } + }; + } +} From 409f5b4f514b6a315701b0d7cfcac8f4cc7636b6 Mon Sep 17 00:00:00 2001 From: "yaoh.wu" Date: Sun, 3 Jun 2018 17:18:49 +0800 Subject: [PATCH 02/10] =?UTF-8?q?REPORT-6700=20=E9=80=82=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mainframe/toolbar/ToolBarMenuDock.java | 6 +- .../com/fr/design/remote/RemoteMember.java | 72 ------------------- .../src/com/fr/design/remote/Utils.java | 47 ------------ .../RemoteDesignAuthorityManagerAction.java | 13 +++- .../design/remote/ui/AuthorityEditorPane.java | 16 +++-- .../remote/ui/AuthorityListControlPane.java | 12 ++-- .../fr/design/remote/ui/UserManagerPane.java | 36 +++++----- .../remote/ui/list/AddedMemberList.java | 14 ++-- .../ui/list/AddedMemberListCellRender.java | 8 +-- .../remote/ui/list/AddingMemberList.java | 10 +-- .../ui/list/AddingMemberListCellRender.java | 8 +-- .../ui/list/AuthorityListCellRenderer.java | 2 +- .../fr/design/remote/ui/list/MemberList.java | 11 +-- 13 files changed, 77 insertions(+), 178 deletions(-) delete mode 100644 designer-base/src/com/fr/design/remote/RemoteMember.java delete mode 100644 designer-base/src/com/fr/design/remote/Utils.java diff --git a/designer-base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java b/designer-base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java index 21f7c3386a..71318906b1 100644 --- a/designer-base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java +++ b/designer-base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java @@ -227,7 +227,8 @@ public abstract class ToolBarMenuDock { menuList.addAll(Arrays.asList(menuDefs)); // 添加服务器菜单 - if (FRContext.getCurrentEnv() != null && FRContext.getCurrentEnv().isRoot()) { + // todo 远程设计isRoot 总是返回false,先处理一下 + if (FRContext.getCurrentEnv() != null && !FRContext.getCurrentEnv().isRoot()) { menuList.add(createServerMenuDef(plus)); } @@ -444,7 +445,8 @@ public abstract class ToolBarMenuDock { } private boolean shouldShowRemotePermission() { - return FRContext.getCurrentEnv() != null && !FRContext.getCurrentEnv().isLocalEnv() && FRContext.getCurrentEnv().isRoot(); + // todo 远程设计 isRoot 总是返回 false 先处理一下 + return FRContext.getCurrentEnv() != null && !FRContext.getCurrentEnv().isLocalEnv() && !FRContext.getCurrentEnv().isRoot(); } protected boolean shouldShowPlugin() { diff --git a/designer-base/src/com/fr/design/remote/RemoteMember.java b/designer-base/src/com/fr/design/remote/RemoteMember.java deleted file mode 100644 index dee672406f..0000000000 --- a/designer-base/src/com/fr/design/remote/RemoteMember.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.fr.design.remote; - -import com.fr.general.Inter; - -public class RemoteMember { - - public static final RemoteMember DEFAULT_MEMBER = - new RemoteMember(Inter.getLocText("FR-Designer_Remote_Design_Loading")); - - - private String username; - private String realName; - private String userId; - - private boolean selected; - - public RemoteMember() { - - } - - public RemoteMember(String username) { - this.username = username; - } - - public RemoteMember username(String username) { - this.username = username; - return this; - } - - public RemoteMember realName(String realName) { - this.realName = realName; - return this; - } - - public RemoteMember userId(String userId) { - this.userId = userId; - return this; - } - - public String getRealName() { - return realName; - } - - public void setRealName(String realName) { - this.realName = realName; - } - - public String getUserId() { - return userId; - } - - public void setUserId(String userId) { - this.userId = userId; - } - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - - public boolean isSelected() { - return selected; - } - - public void setSelected(boolean selected) { - this.selected = selected; - } -} diff --git a/designer-base/src/com/fr/design/remote/Utils.java b/designer-base/src/com/fr/design/remote/Utils.java deleted file mode 100644 index d251099307..0000000000 --- a/designer-base/src/com/fr/design/remote/Utils.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.fr.design.remote; - -import com.fr.base.FRContext; -import com.fr.decision.webservice.bean.user.UserAdditionBean; -import com.fr.decision.webservice.v10.user.UserService; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Map; - -public class Utils { - - - private Utils() { - } - - public static Collection getRemoteMember(String keyword) { - - List userBeans = new ArrayList<>(); - try { - Map result = - UserService.getInstance().getAllUsers( - FRContext.getCurrentEnv().getUser(), - 1, - 10, - keyword, - "", - true); - userBeans = (List) result.get("items"); - } catch (Exception e) { - FRContext.getLogger().error(e.getMessage()); - } - - List res = new ArrayList<>(); - - for (UserAdditionBean userBean : userBeans) { - res.add( - new RemoteMember() - .username(userBean.getUsername()) - .realName(userBean.getRealName()) - .userId(userBean.getId()) - ); - } - return res; - } -} diff --git a/designer-base/src/com/fr/design/remote/action/RemoteDesignAuthorityManagerAction.java b/designer-base/src/com/fr/design/remote/action/RemoteDesignAuthorityManagerAction.java index da2122cb42..fae2388877 100644 --- a/designer-base/src/com/fr/design/remote/action/RemoteDesignAuthorityManagerAction.java +++ b/designer-base/src/com/fr/design/remote/action/RemoteDesignAuthorityManagerAction.java @@ -2,12 +2,13 @@ package com.fr.design.remote.action; import com.fr.base.BaseUtils; import com.fr.base.FRContext; +import com.fr.base.env.proxy.EnvProxy; import com.fr.design.actions.UpdateAction; import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.DialogActionAdapter; import com.fr.design.mainframe.DesignerContext; import com.fr.design.remote.ui.AuthorityManagerPane; -import com.fr.env.RemoteEnv; +import com.fr.env.operator.authority.AuthorityOperator; import com.fr.general.Inter; import com.fr.report.DesignAuthority; @@ -34,7 +35,8 @@ public class RemoteDesignAuthorityManagerAction extends UpdateAction { if (!FRContext.getCurrentEnv().isLocalEnv()) { try { - DesignAuthority[] authorities = ((RemoteEnv) FRContext.getCurrentEnv()).getAuthorities(); + // 远程设计获取全部设计成员的权限列表 + DesignAuthority[] authorities = EnvProxy.get(AuthorityOperator.class).getAuthorities(); if (authorities != null && authorities.length != 0) { managerPane.populate(authorities); } @@ -48,7 +50,12 @@ public class RemoteDesignAuthorityManagerAction extends UpdateAction { public void doOk() { DesignAuthority[] authorities = managerPane.update(); if (!FRContext.getCurrentEnv().isLocalEnv()) { - boolean success = ((RemoteEnv) FRContext.getCurrentEnv()).updateAuthorities(authorities); + boolean success = false; + try { + success = EnvProxy.get(AuthorityOperator.class).updateAuthorities(authorities); + } catch (Exception e) { + FRContext.getLogger().error(e.getMessage()); + } FRContext.getLogger().info("update remote design authority: " + success); } } diff --git a/designer-base/src/com/fr/design/remote/ui/AuthorityEditorPane.java b/designer-base/src/com/fr/design/remote/ui/AuthorityEditorPane.java index 5e27bc907c..59ffae22a4 100644 --- a/designer-base/src/com/fr/design/remote/ui/AuthorityEditorPane.java +++ b/designer-base/src/com/fr/design/remote/ui/AuthorityEditorPane.java @@ -2,8 +2,8 @@ package com.fr.design.remote.ui; import com.fr.base.FRContext; import com.fr.design.beans.BasicBeanPane; +import com.fr.design.border.UITitledBorder; import com.fr.design.gui.icontainer.UIScrollPane; -import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itree.refreshabletree.ExpandMutableTreeNode; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.remote.ui.tree.FileAuthorityTree; @@ -14,23 +14,28 @@ import com.fr.report.DesignAuthority; import com.fr.stable.CoreConstants; import javax.swing.BorderFactory; +import javax.swing.border.EmptyBorder; import javax.swing.tree.TreePath; import java.awt.BorderLayout; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; public class AuthorityEditorPane extends BasicBeanPane { - private UILabel label = new UILabel(); private FileAuthorityTree tree = new FileAuthorityTree(); public AuthorityEditorPane() { this.setLayout(FRGUIPaneFactory.createBorderLayout()); - this.setBorder(BorderFactory.createEmptyBorder()); - this.add(label, BorderLayout.NORTH); + this.setBorder( + BorderFactory.createCompoundBorder( + new EmptyBorder(6, 0, 6, 6), + UITitledBorder.createBorderWithTitle( + Inter.getLocText("模板设计权限配置") + ) + ) + ); IOFileNodeFilter filter = new IOFileNodeFilter(new String[]{".cpt", ".class", ".frm", ".form"}); tree.setDigIn(true); tree.setFileNodeFilter(filter); @@ -49,7 +54,6 @@ public class AuthorityEditorPane extends BasicBeanPane { if (ob == null) { return; } - label.setText(ob.getUsername()); DesignAuthority.Item[] items = ob.getItems(); if (items == null) { diff --git a/designer-base/src/com/fr/design/remote/ui/AuthorityListControlPane.java b/designer-base/src/com/fr/design/remote/ui/AuthorityListControlPane.java index 60dfc2a3cc..cb74dc5574 100644 --- a/designer-base/src/com/fr/design/remote/ui/AuthorityListControlPane.java +++ b/designer-base/src/com/fr/design/remote/ui/AuthorityListControlPane.java @@ -15,10 +15,10 @@ import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.menu.ShortCut; import com.fr.design.menu.ToolBarDef; import com.fr.design.remote.RemoteDesignAuthorityCreator; -import com.fr.design.remote.RemoteMember; import com.fr.design.remote.ui.list.AuthorityList; import com.fr.design.remote.ui.list.AuthorityListCellRenderer; import com.fr.design.utils.gui.GUICoreUtils; +import com.fr.env.RemoteDesignMember; import com.fr.general.ComparatorUtils; import com.fr.general.Inter; import com.fr.report.DesignAuthority; @@ -92,8 +92,8 @@ public class AuthorityListControlPane extends BasicPane { // 右侧卡片布局 cardLayout = new CardLayout(); cardPane = new JPanel(cardLayout); - UILabel selectLabel = new UILabel(); - cardPane.add(selectLabel, UNSELECTED_EDITOR_NAME); + UILabel emptyLabel = new UILabel(); + cardPane.add(emptyLabel, UNSELECTED_EDITOR_NAME); cardPane.add(editorCtrl, SELECTED_EDITOR_NAME); // 左右分割布局 @@ -169,7 +169,7 @@ public class AuthorityListControlPane extends BasicPane { for (int i = 0, len = listModel.getSize(); i < len; i++) { res.add((DesignAuthority) listModel.getElementAt(i)); } - return res.toArray(new DesignAuthority[0]); + return res.toArray(new DesignAuthority[res.size()]); } public void populate(DesignAuthority[] authorities) { @@ -476,8 +476,8 @@ public class AuthorityListControlPane extends BasicPane { @Override public void doOk() { // 获取添加的用户到权限编辑面板 - List members = userManagerPane.update(); - for (RemoteMember member : members) { + List members = userManagerPane.update(); + for (RemoteDesignMember member : members) { DesignAuthority authority = new DesignAuthority(); authority.setUsername(member.getUsername()); authority.setUserId(member.getUserId()); diff --git a/designer-base/src/com/fr/design/remote/ui/UserManagerPane.java b/designer-base/src/com/fr/design/remote/ui/UserManagerPane.java index 226602d6f0..6215e72634 100644 --- a/designer-base/src/com/fr/design/remote/ui/UserManagerPane.java +++ b/designer-base/src/com/fr/design/remote/ui/UserManagerPane.java @@ -1,5 +1,8 @@ package com.fr.design.remote.ui; +import com.fr.base.env.EnvContext; +import com.fr.base.env.proxy.EnvProxy; +import com.fr.base.env.resource.EnvConfigUtils; import com.fr.design.border.UITitledBorder; import com.fr.design.dialog.BasicPane; import com.fr.design.gui.ibutton.UIButton; @@ -8,13 +11,13 @@ import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itextfield.UITextField; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; -import com.fr.design.remote.RemoteMember; -import com.fr.design.remote.Utils; import com.fr.design.remote.ui.list.AddedMemberList; import com.fr.design.remote.ui.list.AddedMemberListCellRender; import com.fr.design.remote.ui.list.AddingMemberList; import com.fr.design.remote.ui.list.AddingMemberListCellRender; import com.fr.design.remote.ui.list.MemberListSelectedChangeListener; +import com.fr.env.RemoteDesignMember; +import com.fr.env.operator.decision.DecisionOperator; import com.fr.general.Inter; import com.fr.stable.StringUtils; import com.fr.third.guava.collect.ImmutableList; @@ -46,16 +49,16 @@ public class UserManagerPane extends BasicPane { /** * 获取的决策平台成员 */ - private List addingMembers = new ArrayList<>(); + private List addingMembers = new ArrayList<>(); /** * 添加到设计的决策平台成员 */ - private List addedMembers = new ArrayList<>(); + private List addedMembers = new ArrayList<>(); /** * 决策平台成员列表model */ - private DefaultListModel addingListModel = new DefaultListModel<>(); + private DefaultListModel addingListModel = new DefaultListModel<>(); /** * 搜索输入框 */ @@ -95,7 +98,7 @@ public class UserManagerPane extends BasicPane { /** * 添加到设计的决策成员计数标签 */ - private DefaultListModel addedListModel; + private DefaultListModel addedListModel; private MemberListSelectedChangeListener addingListChangeListener = new MemberListSelectedChangeListener() { @@ -224,7 +227,7 @@ public class UserManagerPane extends BasicPane { private void addToMemberList() { addingListModel.clear(); - for (RemoteMember member : addingMembers) { + for (RemoteDesignMember member : addingMembers) { addingListModel.addElement(member); } addingList.revalidate(); @@ -233,7 +236,7 @@ public class UserManagerPane extends BasicPane { private void addToAddedMemberList() { addedListModel.clear(); - for (RemoteMember member : addedMembers) { + for (RemoteDesignMember member : addedMembers) { addedListModel.addElement(member); } addedList.revalidate(); @@ -246,7 +249,7 @@ public class UserManagerPane extends BasicPane { private void resetMembers() { addingMembers.clear(); - addingMembers.add(RemoteMember.DEFAULT_MEMBER); + addingMembers.add(RemoteDesignMember.DEFAULT_MEMBER); } private void resetAddedMembers() { @@ -256,11 +259,12 @@ public class UserManagerPane extends BasicPane { private void searchAddingMembers(final String keyword) { - final SwingWorker getMemberWorker = new SwingWorker, Void>() { + final SwingWorker getMemberWorker = new SwingWorker, Void>() { @Override - protected List doInBackground() { + protected List doInBackground() { addingMembers.clear(); - addingMembers.addAll(Utils.getRemoteMember(keyword)); + String username = EnvConfigUtils.getUsername(EnvContext.currentEnv()); + addingMembers.addAll(EnvProxy.get(DecisionOperator.class).getMembers(username, keyword)); return addingMembers; } @@ -274,10 +278,10 @@ public class UserManagerPane extends BasicPane { private void sync2AddedMembersFromAdding() { - RemoteMember[] members = new RemoteMember[addingListModel.getSize()]; + RemoteDesignMember[] members = new RemoteDesignMember[addingListModel.getSize()]; // shallow copy addingListModel.copyInto(members); - for (RemoteMember member : members) { + for (RemoteDesignMember member : members) { if (member.isSelected()) { addedMembers.add(member); } @@ -285,14 +289,14 @@ public class UserManagerPane extends BasicPane { } private void sync2AddedMembersFormAdded() { - RemoteMember[] members = new RemoteMember[addedListModel.getSize()]; + RemoteDesignMember[] members = new RemoteDesignMember[addedListModel.getSize()]; // shallow copy addedListModel.copyInto(members); addedMembers.addAll(Arrays.asList(members)); } - public ImmutableList update() { + public ImmutableList update() { return ImmutableList.copyOf(addedMembers); } } diff --git a/designer-base/src/com/fr/design/remote/ui/list/AddedMemberList.java b/designer-base/src/com/fr/design/remote/ui/list/AddedMemberList.java index fd02aa75b4..ff5d648ee0 100644 --- a/designer-base/src/com/fr/design/remote/ui/list/AddedMemberList.java +++ b/designer-base/src/com/fr/design/remote/ui/list/AddedMemberList.java @@ -1,8 +1,8 @@ package com.fr.design.remote.ui.list; -import com.fr.design.remote.RemoteMember; +import com.fr.env.RemoteDesignMember; -import javax.swing.*; +import javax.swing.DefaultListModel; import java.awt.event.MouseEvent; import java.util.Vector; @@ -12,15 +12,15 @@ public class AddedMemberList extends MemberList { super(); } - public AddedMemberList(DefaultListModel dataModel) { + public AddedMemberList(DefaultListModel dataModel) { super(dataModel); } - public AddedMemberList(RemoteMember[] listData) { + public AddedMemberList(RemoteDesignMember[] listData) { super(listData); } - public AddedMemberList(Vector listData) { + public AddedMemberList(Vector listData) { super(listData); } @@ -32,10 +32,10 @@ public class AddedMemberList extends MemberList { @Override protected void displaySelected() { - RemoteMember member = getSelectedValue(); + RemoteDesignMember member = getSelectedValue(); if (member != null) { member.setSelected(!member.isSelected()); - ((DefaultListModel) getModel()).removeElement(member); + ((DefaultListModel) getModel()).removeElement(member); } revalidate(); repaint(); diff --git a/designer-base/src/com/fr/design/remote/ui/list/AddedMemberListCellRender.java b/designer-base/src/com/fr/design/remote/ui/list/AddedMemberListCellRender.java index 7c34fad5e7..bbb8f314bb 100644 --- a/designer-base/src/com/fr/design/remote/ui/list/AddedMemberListCellRender.java +++ b/designer-base/src/com/fr/design/remote/ui/list/AddedMemberListCellRender.java @@ -3,7 +3,7 @@ package com.fr.design.remote.ui.list; import com.fr.base.BaseUtils; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.ilable.UILabel; -import com.fr.design.remote.RemoteMember; +import com.fr.env.RemoteDesignMember; import javax.swing.BorderFactory; import javax.swing.JList; @@ -12,7 +12,7 @@ import javax.swing.ListCellRenderer; import java.awt.Component; import java.awt.FlowLayout; -public class AddedMemberListCellRender extends JPanel implements ListCellRenderer { +public class AddedMemberListCellRender extends JPanel implements ListCellRenderer { private UILabel label; @@ -34,8 +34,8 @@ public class AddedMemberListCellRender extends JPanel implements ListCellRendere } @Override - public Component getListCellRendererComponent(JList list, RemoteMember member, int index, boolean isSelected, boolean cellHasFocus) { - this.setLabelText(member.getUsername()); + public Component getListCellRendererComponent(JList list, RemoteDesignMember member, int index, boolean isSelected, boolean cellHasFocus) { + this.setLabelText(member.getRealName() + "(" + member.getUsername() + ")"); return this; } diff --git a/designer-base/src/com/fr/design/remote/ui/list/AddingMemberList.java b/designer-base/src/com/fr/design/remote/ui/list/AddingMemberList.java index ced82c1116..37675bac4f 100644 --- a/designer-base/src/com/fr/design/remote/ui/list/AddingMemberList.java +++ b/designer-base/src/com/fr/design/remote/ui/list/AddingMemberList.java @@ -1,6 +1,6 @@ package com.fr.design.remote.ui.list; -import com.fr.design.remote.RemoteMember; +import com.fr.env.RemoteDesignMember; import javax.swing.DefaultListModel; import java.awt.event.MouseEvent; @@ -13,23 +13,23 @@ public class AddingMemberList extends MemberList { super(); } - public AddingMemberList(DefaultListModel dataModel) { + public AddingMemberList(DefaultListModel dataModel) { super(dataModel); } - public AddingMemberList(RemoteMember[] listData) { + public AddingMemberList(RemoteDesignMember[] listData) { super(listData); } - public AddingMemberList(Vector listData) { + public AddingMemberList(Vector listData) { super(listData); } @Override protected void displaySelected() { - RemoteMember member = getSelectedValue(); + RemoteDesignMember member = getSelectedValue(); member.setSelected(!member.isSelected()); revalidate(); repaint(); diff --git a/designer-base/src/com/fr/design/remote/ui/list/AddingMemberListCellRender.java b/designer-base/src/com/fr/design/remote/ui/list/AddingMemberListCellRender.java index 24a0a133b2..0e4dc221d0 100644 --- a/designer-base/src/com/fr/design/remote/ui/list/AddingMemberListCellRender.java +++ b/designer-base/src/com/fr/design/remote/ui/list/AddingMemberListCellRender.java @@ -3,7 +3,7 @@ package com.fr.design.remote.ui.list; import com.fr.base.BaseUtils; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.ilable.UILabel; -import com.fr.design.remote.RemoteMember; +import com.fr.env.RemoteDesignMember; import javax.swing.BorderFactory; import javax.swing.JList; @@ -12,7 +12,7 @@ import javax.swing.ListCellRenderer; import java.awt.Component; import java.awt.FlowLayout; -public class AddingMemberListCellRender extends JPanel implements ListCellRenderer { +public class AddingMemberListCellRender extends JPanel implements ListCellRenderer { private UILabel label; private UICheckBox check; @@ -35,8 +35,8 @@ public class AddingMemberListCellRender extends JPanel implements ListCellRender @Override - public Component getListCellRendererComponent(JList list, RemoteMember member, int index, boolean isSelected, boolean cellHasFocus) { - this.setLabelText(member.getUsername()); + public Component getListCellRendererComponent(JList list, RemoteDesignMember member, int index, boolean isSelected, boolean cellHasFocus) { + this.setLabelText(member.getRealName() + "(" + member.getUsername() + ")"); check.setSelected(member.isSelected()); return this; } diff --git a/designer-base/src/com/fr/design/remote/ui/list/AuthorityListCellRenderer.java b/designer-base/src/com/fr/design/remote/ui/list/AuthorityListCellRenderer.java index 100e68ee1f..4cd9c69f9c 100644 --- a/designer-base/src/com/fr/design/remote/ui/list/AuthorityListCellRenderer.java +++ b/designer-base/src/com/fr/design/remote/ui/list/AuthorityListCellRenderer.java @@ -82,7 +82,7 @@ public class AuthorityListCellRenderer extends setBorder(border); this.setIcon(BaseUtils.readIcon("com/fr/design/remote/images/icon_Member_normal@1x.png")); - this.setText(authority.getUsername()); + this.setText(authority.getRealName() + "(" + authority.getUsername() + ")"); return this; } diff --git a/designer-base/src/com/fr/design/remote/ui/list/MemberList.java b/designer-base/src/com/fr/design/remote/ui/list/MemberList.java index 9384f3883f..9476c15934 100644 --- a/designer-base/src/com/fr/design/remote/ui/list/MemberList.java +++ b/designer-base/src/com/fr/design/remote/ui/list/MemberList.java @@ -1,6 +1,7 @@ package com.fr.design.remote.ui.list; -import com.fr.design.remote.RemoteMember; + +import com.fr.env.RemoteDesignMember; import javax.swing.DefaultListModel; import javax.swing.JList; @@ -12,19 +13,19 @@ import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.Vector; -public abstract class MemberList extends JList { +public abstract class MemberList extends JList { - public MemberList(DefaultListModel dataModel) { + public MemberList(DefaultListModel dataModel) { super(dataModel); init(); } - public MemberList(RemoteMember[] listData) { + public MemberList(RemoteDesignMember[] listData) { super(listData); init(); } - public MemberList(Vector listData) { + public MemberList(Vector listData) { super(listData); init(); } From 9698797803b47c951386a9b9bb213639cf0fac3e Mon Sep 17 00:00:00 2001 From: "yaoh.wu" Date: Mon, 4 Jun 2018 01:23:36 +0800 Subject: [PATCH 03/10] =?UTF-8?q?REPORT-8449=20=E4=BA=A4=E4=BA=92=E9=97=AE?= =?UTF-8?q?=E9=A2=98bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/remote/ui/UserManagerPane.java | 40 +++++++++++-------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/designer-base/src/com/fr/design/remote/ui/UserManagerPane.java b/designer-base/src/com/fr/design/remote/ui/UserManagerPane.java index 6215e72634..e1dcfa62c7 100644 --- a/designer-base/src/com/fr/design/remote/ui/UserManagerPane.java +++ b/designer-base/src/com/fr/design/remote/ui/UserManagerPane.java @@ -11,27 +11,16 @@ import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itextfield.UITextField; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; -import com.fr.design.remote.ui.list.AddedMemberList; -import com.fr.design.remote.ui.list.AddedMemberListCellRender; -import com.fr.design.remote.ui.list.AddingMemberList; -import com.fr.design.remote.ui.list.AddingMemberListCellRender; -import com.fr.design.remote.ui.list.MemberListSelectedChangeListener; +import com.fr.design.remote.ui.list.*; import com.fr.env.RemoteDesignMember; import com.fr.env.operator.decision.DecisionOperator; import com.fr.general.Inter; import com.fr.stable.StringUtils; import com.fr.third.guava.collect.ImmutableList; -import javax.swing.BorderFactory; -import javax.swing.DefaultListModel; -import javax.swing.JPanel; -import javax.swing.ListSelectionModel; -import javax.swing.SwingWorker; +import javax.swing.*; import javax.swing.border.EmptyBorder; -import java.awt.BorderLayout; -import java.awt.Component; -import java.awt.Dimension; -import java.awt.FlowLayout; +import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; @@ -101,15 +90,22 @@ public class UserManagerPane extends BasicPane { private DefaultListModel addedListModel; + /** + * 左侧列表变动事件 + */ private MemberListSelectedChangeListener addingListChangeListener = new MemberListSelectedChangeListener() { @Override public void selectedChange() { - resetAddedMembers(); + // 右侧列表发生变化后,将右侧列表中选中但是在左侧列表中没有的成员添加进来,同时移除取消选中的 sync2AddedMembersFromAdding(); + // 刷新右侧列表显示 addToAddedMemberList(); } }; + /** + * 右侧列表变动事件 + */ private MemberListSelectedChangeListener addedListChangeListener = new MemberListSelectedChangeListener() { @Override public void selectedChange() { @@ -123,6 +119,8 @@ public class UserManagerPane extends BasicPane { String.valueOf(addedMembers.size()) ) ); + // 刷新左侧列表显示 + addToMemberList(); } }; @@ -228,6 +226,12 @@ public class UserManagerPane extends BasicPane { private void addToMemberList() { addingListModel.clear(); for (RemoteDesignMember member : addingMembers) { + // 如果包含在右侧列表中,那么左侧列表默认选中 + if (addedMembers.contains(member)) { + member.setSelected(true); + } else { + member.setSelected(false); + } addingListModel.addElement(member); } addingList.revalidate(); @@ -282,7 +286,11 @@ public class UserManagerPane extends BasicPane { // shallow copy addingListModel.copyInto(members); for (RemoteDesignMember member : members) { - if (member.isSelected()) { + + if (!member.isSelected()) { + addedMembers.remove(member); + } + if (member.isSelected() && !addedMembers.contains(member)) { addedMembers.add(member); } } From dee9c6512a8512f0c1745056819bbedf10a53218 Mon Sep 17 00:00:00 2001 From: "yaoh.wu" Date: Mon, 4 Jun 2018 03:32:58 +0800 Subject: [PATCH 04/10] =?UTF-8?q?ui=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gui/itree/filetree/TemplateFileTree.java | 170 +++++++++++++++--- .../fr/design/remote/button/IconButton.java | 52 ++++++ .../remote/ui/AuthorityListControlPane.java | 17 +- .../fr/design/remote/ui/UserManagerPane.java | 4 +- .../remote/ui/list/AddedMemberList.java | 13 +- .../ui/list/AddedMemberListCellRender.java | 20 +-- .../remote/ui/list/AddingMemberList.java | 13 +- .../ui/list/AddingMemberListCellRender.java | 10 +- 8 files changed, 237 insertions(+), 62 deletions(-) create mode 100644 designer-base/src/com/fr/design/remote/button/IconButton.java diff --git a/designer-base/src/com/fr/design/gui/itree/filetree/TemplateFileTree.java b/designer-base/src/com/fr/design/gui/itree/filetree/TemplateFileTree.java index a90f25e893..fec5d1e2fe 100644 --- a/designer-base/src/com/fr/design/gui/itree/filetree/TemplateFileTree.java +++ b/designer-base/src/com/fr/design/gui/itree/filetree/TemplateFileTree.java @@ -1,20 +1,29 @@ package com.fr.design.gui.itree.filetree; +import com.fr.base.Env; +import com.fr.base.FRContext; +import com.fr.base.env.EnvContext; +import com.fr.base.env.proxy.EnvProxy; +import com.fr.base.env.resource.EnvConfigUtils; import com.fr.design.gui.itree.refreshabletree.ExpandMutableTreeNode; +import com.fr.env.operator.file.TplFileOperator; import com.fr.file.filetree.FileNode; import com.fr.stable.ArrayUtils; +import com.fr.stable.StableUtils; import com.fr.stable.project.ProjectConstants; import javax.swing.text.Position; +import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.TreePath; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; /* * 显示Env下的reportlets目录下面的所有cpt文件 */ public class TemplateFileTree extends EnvFileTree { - + public TemplateFileTree() { super(ProjectConstants.REPORTLETS_NAME, null, null); @@ -42,33 +51,32 @@ public class TemplateFileTree extends EnvFileTree { return null; } - - public String[] getSelectedTemplatePaths(){ - TreePath[] selectedTreePaths = this.getSelectionPaths(); - if (ArrayUtils.isEmpty(selectedTreePaths)) { - return ArrayUtils.EMPTY_STRING_ARRAY; - } - List selectedPathList = new ArrayList(); - for(TreePath treepath : selectedTreePaths){ - ExpandMutableTreeNode currentTreeNode = (ExpandMutableTreeNode) treepath.getLastPathComponent(); - Object userObject = currentTreeNode.getUserObject(); - if (userObject instanceof FileNode) { - FileNode fn = (FileNode) userObject; - if (!fn.isDirectory()) { - String envPath = fn.getEnvPath(); - if (envPath.startsWith(ProjectConstants.REPORTLETS_NAME)) { - selectedPathList.add(envPath.substring(ProjectConstants.REPORTLETS_NAME.length())); - } - } - } - } - - - return selectedPathList.toArray(new String[0]); + + public String[] getSelectedTemplatePaths() { + TreePath[] selectedTreePaths = this.getSelectionPaths(); + if (ArrayUtils.isEmpty(selectedTreePaths)) { + return ArrayUtils.EMPTY_STRING_ARRAY; + } + List selectedPathList = new ArrayList(); + for (TreePath treepath : selectedTreePaths) { + ExpandMutableTreeNode currentTreeNode = (ExpandMutableTreeNode) treepath.getLastPathComponent(); + Object userObject = currentTreeNode.getUserObject(); + if (userObject instanceof FileNode) { + FileNode fn = (FileNode) userObject; + if (!fn.isDirectory()) { + String envPath = fn.getEnvPath(); + if (envPath.startsWith(ProjectConstants.REPORTLETS_NAME)) { + selectedPathList.add(envPath.substring(ProjectConstants.REPORTLETS_NAME.length())); + } + } + } + } + + + return selectedPathList.toArray(new String[0]); } - public TreePath getNextMatch(String prefix, int startingRow, - Position.Bias bias) { + public TreePath getNextMatch(String prefix, int startingRow, Position.Bias bias) { int max = getRowCount(); if (prefix == null) { @@ -78,9 +86,7 @@ public class TemplateFileTree extends EnvFileTree { throw new IllegalArgumentException(); } prefix = prefix.toUpperCase(); - - // start search from the next/previous element froom the - // selected element + // start search from the next/previous element from the selected element int increment = (bias == Position.Bias.Forward) ? 1 : -1; int row = startingRow; do { @@ -96,4 +102,110 @@ public class TemplateFileTree extends EnvFileTree { } while (row != startingRow); return null; } + + public FileNode[] listFile(String path) { + String username = EnvConfigUtils.getUsername(EnvContext.currentEnv()); + String extra = EnvProxy.get(TplFileOperator.class).readExtraResourcePath(path); + return EnvProxy.get(TplFileOperator.class).list(username, extra, path); + } + + /* + * 改变Env后,根据构造函数时设置的RootPaths,重新加载 + */ + public void refreshEnv(Env env) { + + DefaultTreeModel defaultTreeModel = (DefaultTreeModel) this.getModel(); + ExpandMutableTreeNode rootTreeNode = (ExpandMutableTreeNode) defaultTreeModel.getRoot(); + rootTreeNode.removeAllChildren(); + + FileNode[] fns; + + // 如果rootPaths是null的话列出所有文件 + if (subPathes == null) { + fns = listFileNodes(this.treeRootPath); + } else { + // 重新加载新的FileDirectoryNode + fns = new FileNode[subPathes.length]; + for (int i = 0; i < subPathes.length; i++) { + fns[i] = new FileNode(StableUtils.pathJoin(this.treeRootPath, subPathes[i]), true); + } + } + + ExpandMutableTreeNode[] subTreeNodes = fileNodeArray2TreeNodeArray(fns); + + for (ExpandMutableTreeNode node : subTreeNodes) { + rootTreeNode.add(node); + } + + defaultTreeModel.reload(rootTreeNode); + } + + protected ExpandMutableTreeNode[] loadChildTreeNodes(ExpandMutableTreeNode treeNode) { + FileNode[] fn_array = listFileNodes(treeNode); + + return fileNodeArray2TreeNodeArray(fn_array); + } + + /* + * 把FileNode[]转成ExpandMutableTreeNode[] + */ + private ExpandMutableTreeNode[] fileNodeArray2TreeNodeArray(FileNode[] fileNodes) { + ExpandMutableTreeNode[] res = new ExpandMutableTreeNode[fileNodes.length]; + for (int i = 0; i < res.length; i++) { + FileNode fn = fileNodes[i]; + res[i] = new ExpandMutableTreeNode(fn); + if (fn.isDirectory()) { + res[i].add(new ExpandMutableTreeNode()); + } + } + + return res; + } + + + private FileNode[] listFileNodes(String filePath) { + FileNode[] fileNodes = null; + try { + fileNodes = listFile(filePath); + } catch (Exception e) { + FRContext.getLogger().error(e.getMessage(), e); + } + if (fileNodes == null) { + fileNodes = new FileNode[0]; + } + // 用FileNodeFilter过滤一下 + if (filter != null) { + List list = new ArrayList(); + for (FileNode fileNode : fileNodes) { + if (filter.accept(fileNode)) { + list.add(fileNode); + } + } + + fileNodes = list.toArray(new FileNode[list.size()]); + } + + Arrays.sort(fileNodes, new FileNodeComparator()); + + return fileNodes; + } + + /* + * 求当前TreeNode下所有的FileNode. + */ + private FileNode[] listFileNodes(ExpandMutableTreeNode currentTreeNode) { + if (currentTreeNode == null) { + return new FileNode[0]; + } + + Object object = currentTreeNode.getUserObject(); + + if (object instanceof FileNode) { + return this.listFileNodes(((FileNode) object).getEnvPath()); + } + + return new FileNode[0]; + } + + } \ No newline at end of file diff --git a/designer-base/src/com/fr/design/remote/button/IconButton.java b/designer-base/src/com/fr/design/remote/button/IconButton.java new file mode 100644 index 0000000000..78ebddb19b --- /dev/null +++ b/designer-base/src/com/fr/design/remote/button/IconButton.java @@ -0,0 +1,52 @@ +package com.fr.design.remote.button; + +import com.fr.base.BaseUtils; +import com.fr.design.utils.gui.GUICoreUtils; +import com.fr.stable.StringUtils; + +import javax.swing.*; +import java.awt.*; + +public final class IconButton extends JButton { + public IconButton() { + super(StringUtils.EMPTY); + setContentAreaFilled(false); + setFocusPainted(false); + setIcon(BaseUtils.readIcon("com/fr/design/remote/images/icon_Remove_x.png")); + setBorder(null); + } + + @Override + protected void paintBorder(Graphics g) { + } + + @Override + protected void paintComponent(Graphics g) { + final Graphics2D g2 = (Graphics2D) g.create(); + g2.setPaint( + new GradientPaint( + new Point(0, 0), + new Color(0xF5F5F7), + new Point(0, getPreferredSize().height), + new Color(0xF5F5F7) + ) + ); + g2.fillRect(0, 0, getPreferredSize().width, getPreferredSize().height); + g2.dispose(); + + super.paintComponent(g); + } + + public static void main(String[] args) { + JFrame jf = new JFrame("test"); + jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); + JPanel content = (JPanel) jf.getContentPane(); + content.setLayout(null); + IconButton a = new IconButton(); + a.setBounds(0, 0, a.getPreferredSize().width, a.getPreferredSize().height); + content.add(a); + GUICoreUtils.centerWindow(jf); + jf.setSize(400, 400); + jf.setVisible(true); + } +} diff --git a/designer-base/src/com/fr/design/remote/ui/AuthorityListControlPane.java b/designer-base/src/com/fr/design/remote/ui/AuthorityListControlPane.java index cb74dc5574..cf160a7959 100644 --- a/designer-base/src/com/fr/design/remote/ui/AuthorityListControlPane.java +++ b/designer-base/src/com/fr/design/remote/ui/AuthorityListControlPane.java @@ -24,17 +24,10 @@ import com.fr.general.Inter; import com.fr.report.DesignAuthority; import com.fr.stable.ArrayUtils; -import javax.swing.BorderFactory; -import javax.swing.DefaultListModel; -import javax.swing.JOptionPane; -import javax.swing.JPanel; -import javax.swing.JSplitPane; -import javax.swing.ListSelectionModel; -import javax.swing.SwingUtilities; +import javax.swing.*; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; -import java.awt.BorderLayout; -import java.awt.CardLayout; +import java.awt.*; import java.awt.event.ActionEvent; import java.util.ArrayList; import java.util.List; @@ -231,6 +224,12 @@ public class AuthorityListControlPane extends BasicPane { public void addAuthority(DesignAuthority authority, int index) { DefaultListModel model = (DefaultListModel) authorityList.getModel(); + for (int i = 0; i < model.size(); i++) { + if (model.get(i).getUserId().equals(authority.getUserId())) { + return; + } + } + model.add(index, authority); authorityList.setSelectedIndex(index); authorityList.ensureIndexIsVisible(index); diff --git a/designer-base/src/com/fr/design/remote/ui/UserManagerPane.java b/designer-base/src/com/fr/design/remote/ui/UserManagerPane.java index e1dcfa62c7..427bf6e6c6 100644 --- a/designer-base/src/com/fr/design/remote/ui/UserManagerPane.java +++ b/designer-base/src/com/fr/design/remote/ui/UserManagerPane.java @@ -163,7 +163,7 @@ public class UserManagerPane extends BasicPane { // 搜索 JPanel searchPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); searchPanel.setBorder(BorderFactory.createEmptyBorder()); - keyField.setPreferredSize(new Dimension(200, 20)); + keyField.setPreferredSize(new Dimension(250, 20)); keyField.requestFocus(); keyField.addKeyListener(keyFieldKeyListener); keyButton.setText(Inter.getLocText("FR-Designer_Remote_Design_Search")); @@ -205,6 +205,8 @@ public class UserManagerPane extends BasicPane { Inter.getLocText("FR-Designer_Remote_Design_Selected_Member_Count", String.valueOf(addedMembers.size())) ); + countLabel.setBorder(BorderFactory.createEmptyBorder(7, 12, 8, 0)); + countLabel.setForeground(new Color(0x8F8F92)); addedListModel = new DefaultListModel<>(); addedList = new AddedMemberList(addedListModel); diff --git a/designer-base/src/com/fr/design/remote/ui/list/AddedMemberList.java b/designer-base/src/com/fr/design/remote/ui/list/AddedMemberList.java index ff5d648ee0..8854f920f1 100644 --- a/designer-base/src/com/fr/design/remote/ui/list/AddedMemberList.java +++ b/designer-base/src/com/fr/design/remote/ui/list/AddedMemberList.java @@ -2,7 +2,8 @@ package com.fr.design.remote.ui.list; import com.fr.env.RemoteDesignMember; -import javax.swing.DefaultListModel; +import javax.swing.*; +import java.awt.*; import java.awt.event.MouseEvent; import java.util.Vector; @@ -27,7 +28,15 @@ public class AddedMemberList extends MemberList { @Override protected boolean shouldDisplaySelected(MouseEvent e) { - return true; + Point point = e.getPoint(); + int rX = point.x; + int rY = point.y; + int index = this.getSelectedIndex(); + int x = 280; + int y = 25 * index; + int width = 20; + int height = 25; + return x <= rX && rX <= x + width && y <= rY && rY <= y + height; } @Override diff --git a/designer-base/src/com/fr/design/remote/ui/list/AddedMemberListCellRender.java b/designer-base/src/com/fr/design/remote/ui/list/AddedMemberListCellRender.java index bbb8f314bb..71ec3bd61c 100644 --- a/designer-base/src/com/fr/design/remote/ui/list/AddedMemberListCellRender.java +++ b/designer-base/src/com/fr/design/remote/ui/list/AddedMemberListCellRender.java @@ -1,36 +1,29 @@ package com.fr.design.remote.ui.list; import com.fr.base.BaseUtils; -import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.ilable.UILabel; +import com.fr.design.remote.button.IconButton; import com.fr.env.RemoteDesignMember; -import javax.swing.BorderFactory; -import javax.swing.JList; -import javax.swing.JPanel; -import javax.swing.ListCellRenderer; -import java.awt.Component; -import java.awt.FlowLayout; +import javax.swing.*; +import java.awt.*; public class AddedMemberListCellRender extends JPanel implements ListCellRenderer { private UILabel label; - private UIButton uiButton; - public AddedMemberListCellRender() { this.setBorder(BorderFactory.createEmptyBorder()); this.setLayout(new FlowLayout(FlowLayout.LEFT)); label = new UILabel(); label.setIcon(BaseUtils.readIcon("com/fr/design/remote/images/icon_Member_normal@1x.png")); - - uiButton = new UIButton(); - uiButton.setIcon(BaseUtils.readIcon("com/fr/design/remote/images/icon_Remove_x.png")); + label.setPreferredSize(new Dimension(270, 20)); + this.setPreferredSize(new Dimension(this.getPreferredSize().width, 25)); this.add(label); - this.add(uiButton); + this.add(new IconButton()); } @Override @@ -42,4 +35,5 @@ public class AddedMemberListCellRender extends JPanel implements ListCellRendere private void setLabelText(String name) { label.setText(name); } + } diff --git a/designer-base/src/com/fr/design/remote/ui/list/AddingMemberList.java b/designer-base/src/com/fr/design/remote/ui/list/AddingMemberList.java index 37675bac4f..289d76a607 100644 --- a/designer-base/src/com/fr/design/remote/ui/list/AddingMemberList.java +++ b/designer-base/src/com/fr/design/remote/ui/list/AddingMemberList.java @@ -2,7 +2,8 @@ package com.fr.design.remote.ui.list; import com.fr.env.RemoteDesignMember; -import javax.swing.DefaultListModel; +import javax.swing.*; +import java.awt.*; import java.awt.event.MouseEvent; import java.util.Vector; @@ -38,7 +39,15 @@ public class AddingMemberList extends MemberList { @Override protected boolean shouldDisplaySelected(MouseEvent e) { - return true; + Point point = e.getPoint(); + int rX = point.x; + int rY = point.y; + int index = this.getSelectedIndex(); + int x = 280; + int y = 25 * index; + int width = 25; + int height = 25; + return x <= rX && rX <= x + width && y <= rY && rY <= y + height; } } diff --git a/designer-base/src/com/fr/design/remote/ui/list/AddingMemberListCellRender.java b/designer-base/src/com/fr/design/remote/ui/list/AddingMemberListCellRender.java index 0e4dc221d0..f119432db9 100644 --- a/designer-base/src/com/fr/design/remote/ui/list/AddingMemberListCellRender.java +++ b/designer-base/src/com/fr/design/remote/ui/list/AddingMemberListCellRender.java @@ -5,12 +5,8 @@ import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.ilable.UILabel; import com.fr.env.RemoteDesignMember; -import javax.swing.BorderFactory; -import javax.swing.JList; -import javax.swing.JPanel; -import javax.swing.ListCellRenderer; -import java.awt.Component; -import java.awt.FlowLayout; +import javax.swing.*; +import java.awt.*; public class AddingMemberListCellRender extends JPanel implements ListCellRenderer { @@ -23,6 +19,8 @@ public class AddingMemberListCellRender extends JPanel implements ListCellRender this.setLayout(new FlowLayout(FlowLayout.LEFT)); label = new UILabel(); + label.setPreferredSize(new Dimension(270, 20)); + this.setPreferredSize(new Dimension(this.getPreferredSize().width, 25)); label.setIcon(BaseUtils.readIcon("com/fr/design/remote/images/icon_Member_normal@1x.png")); check = new UICheckBox(); From 1070f78c4d17f96bc514649a688a56728606d9a3 Mon Sep 17 00:00:00 2001 From: kerry Date: Mon, 4 Jun 2018 14:10:53 +0800 Subject: [PATCH 05/10] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/extra/PluginWebPane.java | 57 +++++++++++-------- 1 file changed, 33 insertions(+), 24 deletions(-) diff --git a/designer-base/src/com/fr/design/extra/PluginWebPane.java b/designer-base/src/com/fr/design/extra/PluginWebPane.java index 44006c8548..c82f6af595 100644 --- a/designer-base/src/com/fr/design/extra/PluginWebPane.java +++ b/designer-base/src/com/fr/design/extra/PluginWebPane.java @@ -1,5 +1,6 @@ package com.fr.design.extra; +import com.fr.base.FRContext; import com.fr.base.TemplateUtils; import com.fr.general.IOUtils; import com.fr.stable.StableUtils; @@ -28,7 +29,7 @@ import java.util.Map; * Created by richie on 16/3/19. */ public class PluginWebPane extends JFXPanel { - + private static final String RESOURCE_URL = "resourceURL"; private WebEngine webEngine; public PluginWebPane(final String installHome, final String mainJs) { @@ -42,29 +43,8 @@ public class PluginWebPane extends JFXPanel { WebView webView = new WebView(); webEngine = webView.getEngine(); try{ - InputStream inp = IOUtils.readResource(StableUtils.pathJoin(installHome, mainJs)); - if (inp == null) { - throw new IOException("Not found template: " + mainJs); - } - BufferedReader reader = new BufferedReader(new InputStreamReader(inp, StableUtils.RESOURCE_ENCODER)); - BufferedReader read = new BufferedReader(reader); - StringBuffer sb = new StringBuffer(); - String line; - Map map4Tpl = new HashMap(); - - map4Tpl.put("servletURL", "file:///" + URLEncoder.encode(installHome, "UTF-8")); - while ((line = read.readLine()) != null) { - if (sb.length() > 0) { - sb.append('\n'); - } - sb.append(line); - } - - String htmlString = TemplateUtils.renderParameter4Tpl(sb.toString(), map4Tpl); - reader.close(); - inp.close(); + String htmlString = getRenderedHtml(installHome, mainJs); webEngine.loadContent(htmlString); - webEngine.setOnAlert(new EventHandler>() { @Override public void handle(WebEvent event) { @@ -76,13 +56,42 @@ public class PluginWebPane extends JFXPanel { webView.setContextMenuEnabled(false);//屏蔽右键 root.setCenter(webView); }catch (Exception e){ - + FRContext.getLogger().error(e.getMessage(), e); } } }); } + private String getRenderedHtml(String installHome, String mainJs) throws IOException { + InputStream inp = IOUtils.readResource(StableUtils.pathJoin(installHome, mainJs)); + if (inp == null) { + throw new IOException("Not found template: " + mainJs); + } + BufferedReader reader = new BufferedReader(new InputStreamReader(inp, StableUtils.RESOURCE_ENCODER)); + BufferedReader read = new BufferedReader(reader); + StringBuffer sb = new StringBuffer(); + String line; + Map map4Tpl = new HashMap(); + + map4Tpl.put(RESOURCE_URL, "file:///" + URLEncoder.encode(installHome, "UTF-8")); + while ((line = read.readLine()) != null) { + if (sb.length() > 0) { + sb.append('\n'); + } + sb.append(line); + } + String htmlString = StringUtils.EMPTY; + try{ + htmlString = TemplateUtils.renderParameter4Tpl(sb.toString(), map4Tpl); + }catch (Exception e){ + FRContext.getLogger().error(e.getMessage(), e); + } + reader.close(); + inp.close(); + return htmlString; + } + private void showAlert(final String message) { SwingUtilities.invokeLater(new Runnable() { @Override From d847dcb84e601cba2418369d179d2d18207c6e73 Mon Sep 17 00:00:00 2001 From: "yaoh.wu" Date: Mon, 4 Jun 2018 15:46:32 +0800 Subject: [PATCH 06/10] =?UTF-8?q?REPORT-6700=20=E9=83=A8=E5=88=86=E8=A7=84?= =?UTF-8?q?=E8=8C=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/mainframe/toolbar/ToolBarMenuDock.java | 6 ++---- .../action/RemoteDesignAuthorityManagerAction.java | 2 +- .../fr/design/remote/ui/AuthorityEditorPane.java | 2 +- .../design/remote/ui/AuthorityListControlPane.java | 2 +- .../fr/design/remote/ui/AuthorityManagerPane.java | 3 +-- .../com/fr/design/remote/ui/UserManagerPane.java | 14 +++++++------- 6 files changed, 13 insertions(+), 16 deletions(-) diff --git a/designer-base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java b/designer-base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java index 71318906b1..21f7c3386a 100644 --- a/designer-base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java +++ b/designer-base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java @@ -227,8 +227,7 @@ public abstract class ToolBarMenuDock { menuList.addAll(Arrays.asList(menuDefs)); // 添加服务器菜单 - // todo 远程设计isRoot 总是返回false,先处理一下 - if (FRContext.getCurrentEnv() != null && !FRContext.getCurrentEnv().isRoot()) { + if (FRContext.getCurrentEnv() != null && FRContext.getCurrentEnv().isRoot()) { menuList.add(createServerMenuDef(plus)); } @@ -445,8 +444,7 @@ public abstract class ToolBarMenuDock { } private boolean shouldShowRemotePermission() { - // todo 远程设计 isRoot 总是返回 false 先处理一下 - return FRContext.getCurrentEnv() != null && !FRContext.getCurrentEnv().isLocalEnv() && !FRContext.getCurrentEnv().isRoot(); + return FRContext.getCurrentEnv() != null && !FRContext.getCurrentEnv().isLocalEnv() && FRContext.getCurrentEnv().isRoot(); } protected boolean shouldShowPlugin() { diff --git a/designer-base/src/com/fr/design/remote/action/RemoteDesignAuthorityManagerAction.java b/designer-base/src/com/fr/design/remote/action/RemoteDesignAuthorityManagerAction.java index fae2388877..e9550ee806 100644 --- a/designer-base/src/com/fr/design/remote/action/RemoteDesignAuthorityManagerAction.java +++ b/designer-base/src/com/fr/design/remote/action/RemoteDesignAuthorityManagerAction.java @@ -21,7 +21,7 @@ public class RemoteDesignAuthorityManagerAction extends UpdateAction { public RemoteDesignAuthorityManagerAction() { - this.setName(Inter.getLocText("FR-Designer_Remote_Design_Authority_Manager")); + this.setName(Inter.getLocText("Fine-Designer_Remote_Design_Authority_Manager")); this.setSmallIcon(BaseUtils.readIcon("com/fr/design/remote/images/icon_Remote_Design_Permission_Manager_normal@1x.png")); } diff --git a/designer-base/src/com/fr/design/remote/ui/AuthorityEditorPane.java b/designer-base/src/com/fr/design/remote/ui/AuthorityEditorPane.java index 59ffae22a4..59d24cb726 100644 --- a/designer-base/src/com/fr/design/remote/ui/AuthorityEditorPane.java +++ b/designer-base/src/com/fr/design/remote/ui/AuthorityEditorPane.java @@ -46,7 +46,7 @@ public class AuthorityEditorPane extends BasicBeanPane { @Override protected String title4PopupWindow() { - return Inter.getLocText("FR-Designer_Remote_Design_Configure_Authority"); + return Inter.getLocText("Fine-Designer_Remote_Design_Configure_Authority"); } @Override diff --git a/designer-base/src/com/fr/design/remote/ui/AuthorityListControlPane.java b/designer-base/src/com/fr/design/remote/ui/AuthorityListControlPane.java index cf160a7959..aaaf79cec8 100644 --- a/designer-base/src/com/fr/design/remote/ui/AuthorityListControlPane.java +++ b/designer-base/src/com/fr/design/remote/ui/AuthorityListControlPane.java @@ -70,7 +70,7 @@ public class AuthorityListControlPane extends BasicPane { this.setLayout(FRGUIPaneFactory.createBorderLayout()); this.authorityCreators = new RemoteDesignAuthorityCreator[]{ new RemoteDesignAuthorityCreator( - Inter.getLocText("FR-Designer_Remote_Design_User"), + Inter.getLocText("Fine-Designer_Remote_Design_User"), BaseUtils.readIcon("com/fr/design/remote/images/icon_Member_normal@1x.png"), DesignAuthority.class, AuthorityEditorPane.class) diff --git a/designer-base/src/com/fr/design/remote/ui/AuthorityManagerPane.java b/designer-base/src/com/fr/design/remote/ui/AuthorityManagerPane.java index 3ce863af3b..f7063e1143 100644 --- a/designer-base/src/com/fr/design/remote/ui/AuthorityManagerPane.java +++ b/designer-base/src/com/fr/design/remote/ui/AuthorityManagerPane.java @@ -6,7 +6,6 @@ import com.fr.report.DesignAuthority; import javax.swing.BorderFactory; import java.awt.BorderLayout; -import java.util.Arrays; public class AuthorityManagerPane extends BasicPane { @@ -24,7 +23,7 @@ public class AuthorityManagerPane extends BasicPane { @Override protected String title4PopupWindow() { - return Inter.getLocText("FR-Designer_Remote_Design_Authority_Manager"); + return Inter.getLocText("Fine-Designer_Remote_Design_Authority_Manager"); } public void populate(DesignAuthority[] authorities) { diff --git a/designer-base/src/com/fr/design/remote/ui/UserManagerPane.java b/designer-base/src/com/fr/design/remote/ui/UserManagerPane.java index 427bf6e6c6..b782f7153c 100644 --- a/designer-base/src/com/fr/design/remote/ui/UserManagerPane.java +++ b/designer-base/src/com/fr/design/remote/ui/UserManagerPane.java @@ -115,7 +115,7 @@ public class UserManagerPane extends BasicPane { sync2AddedMembersFormAdded(); // 不需要重复更新右侧列表显示 但是更新一下计数显示 countLabel.setText( - Inter.getLocText("FR-Designer_Remote_Design_Selected_Member_Count", + Inter.getLocText("Fine-Designer_Remote_Design_Selected_Member_Count", String.valueOf(addedMembers.size()) ) ); @@ -145,7 +145,7 @@ public class UserManagerPane extends BasicPane { @Override protected String title4PopupWindow() { - return Inter.getLocText("FR-Designer_Remote_Design_Add_Member"); + return Inter.getLocText("Fine-Designer_Remote_Design_Add_Member"); } private JPanel createLeftPanel() { @@ -155,7 +155,7 @@ public class UserManagerPane extends BasicPane { BorderFactory.createCompoundBorder( new EmptyBorder(6, 0, 0, 0), UITitledBorder.createBorderWithTitle( - Inter.getLocText("FR-Designer_Remote_Design_Decision_Member") + Inter.getLocText("Fine-Designer_Remote_Design_Decision_Member") ) ) ); @@ -166,7 +166,7 @@ public class UserManagerPane extends BasicPane { keyField.setPreferredSize(new Dimension(250, 20)); keyField.requestFocus(); keyField.addKeyListener(keyFieldKeyListener); - keyButton.setText(Inter.getLocText("FR-Designer_Remote_Design_Search")); + keyButton.setText(Inter.getLocText("Fine-Designer_Remote_Design_Search")); keyButton.addActionListener(keyButtonActionListener); searchPanel.add(keyField); searchPanel.add(keyButton); @@ -195,14 +195,14 @@ public class UserManagerPane extends BasicPane { BorderFactory.createCompoundBorder( new EmptyBorder(6, 0, 0, 0), UITitledBorder.createBorderWithTitle( - Inter.getLocText("FR-Designer_Remote_Design_Selected_Member") + Inter.getLocText("Fine-Designer_Remote_Design_Selected_Member") ) ) ); // 计数 countLabel.setText( - Inter.getLocText("FR-Designer_Remote_Design_Selected_Member_Count", + Inter.getLocText("Fine-Designer_Remote_Design_Selected_Member_Count", String.valueOf(addedMembers.size())) ); countLabel.setBorder(BorderFactory.createEmptyBorder(7, 12, 8, 0)); @@ -248,7 +248,7 @@ public class UserManagerPane extends BasicPane { addedList.revalidate(); addedList.repaint(); countLabel.setText( - Inter.getLocText("FR-Designer_Remote_Design_Selected_Member_Count", + Inter.getLocText("Fine-Designer_Remote_Design_Selected_Member_Count", String.valueOf(addedMembers.size()) )); } From 1e0038267db10c2af426bd4329e0ff267eaa45b6 Mon Sep 17 00:00:00 2001 From: "yaoh.wu" Date: Mon, 4 Jun 2018 16:01:44 +0800 Subject: [PATCH 07/10] =?UTF-8?q?=E6=97=A0=E4=BB=BB=E5=8A=A1=EF=BC=8C?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=A7=84=E8=8C=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../remote/RemoteDesignAuthorityCreator.java | 2 +- .../fr/design/remote/button/IconButton.java | 11 +++++++++-- .../remote/ui/AuthorityListControlPane.java | 11 +++++++++-- .../fr/design/remote/ui/UserManagerPane.java | 18 +++++++++++++++--- .../design/remote/ui/list/AddedMemberList.java | 4 ++-- .../ui/list/AddedMemberListCellRender.java | 9 +++++++-- .../remote/ui/list/AddingMemberList.java | 4 ++-- .../ui/list/AddingMemberListCellRender.java | 9 +++++++-- 8 files changed, 52 insertions(+), 16 deletions(-) diff --git a/designer-base/src/com/fr/design/remote/RemoteDesignAuthorityCreator.java b/designer-base/src/com/fr/design/remote/RemoteDesignAuthorityCreator.java index 1487d1a4e7..9ca65e6bac 100644 --- a/designer-base/src/com/fr/design/remote/RemoteDesignAuthorityCreator.java +++ b/designer-base/src/com/fr/design/remote/RemoteDesignAuthorityCreator.java @@ -3,7 +3,7 @@ package com.fr.design.remote; import com.fr.design.beans.BasicBeanPane; import com.fr.report.DesignAuthority; -import javax.swing.*; +import javax.swing.Icon; public class RemoteDesignAuthorityCreator { diff --git a/designer-base/src/com/fr/design/remote/button/IconButton.java b/designer-base/src/com/fr/design/remote/button/IconButton.java index 78ebddb19b..132f99a8fc 100644 --- a/designer-base/src/com/fr/design/remote/button/IconButton.java +++ b/designer-base/src/com/fr/design/remote/button/IconButton.java @@ -4,8 +4,15 @@ import com.fr.base.BaseUtils; import com.fr.design.utils.gui.GUICoreUtils; import com.fr.stable.StringUtils; -import javax.swing.*; -import java.awt.*; +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JPanel; +import javax.swing.WindowConstants; +import java.awt.Color; +import java.awt.GradientPaint; +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.Point; public final class IconButton extends JButton { public IconButton() { diff --git a/designer-base/src/com/fr/design/remote/ui/AuthorityListControlPane.java b/designer-base/src/com/fr/design/remote/ui/AuthorityListControlPane.java index aaaf79cec8..ad0255032e 100644 --- a/designer-base/src/com/fr/design/remote/ui/AuthorityListControlPane.java +++ b/designer-base/src/com/fr/design/remote/ui/AuthorityListControlPane.java @@ -24,10 +24,17 @@ import com.fr.general.Inter; import com.fr.report.DesignAuthority; import com.fr.stable.ArrayUtils; -import javax.swing.*; +import javax.swing.BorderFactory; +import javax.swing.DefaultListModel; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JSplitPane; +import javax.swing.ListSelectionModel; +import javax.swing.SwingUtilities; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; -import java.awt.*; +import java.awt.BorderLayout; +import java.awt.CardLayout; import java.awt.event.ActionEvent; import java.util.ArrayList; import java.util.List; diff --git a/designer-base/src/com/fr/design/remote/ui/UserManagerPane.java b/designer-base/src/com/fr/design/remote/ui/UserManagerPane.java index b782f7153c..0f1fcc6f80 100644 --- a/designer-base/src/com/fr/design/remote/ui/UserManagerPane.java +++ b/designer-base/src/com/fr/design/remote/ui/UserManagerPane.java @@ -11,16 +11,28 @@ import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itextfield.UITextField; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; -import com.fr.design.remote.ui.list.*; +import com.fr.design.remote.ui.list.AddedMemberList; +import com.fr.design.remote.ui.list.AddedMemberListCellRender; +import com.fr.design.remote.ui.list.AddingMemberList; +import com.fr.design.remote.ui.list.AddingMemberListCellRender; +import com.fr.design.remote.ui.list.MemberListSelectedChangeListener; import com.fr.env.RemoteDesignMember; import com.fr.env.operator.decision.DecisionOperator; import com.fr.general.Inter; import com.fr.stable.StringUtils; import com.fr.third.guava.collect.ImmutableList; -import javax.swing.*; +import javax.swing.BorderFactory; +import javax.swing.DefaultListModel; +import javax.swing.JPanel; +import javax.swing.ListSelectionModel; +import javax.swing.SwingWorker; import javax.swing.border.EmptyBorder; -import java.awt.*; +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Component; +import java.awt.Dimension; +import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; diff --git a/designer-base/src/com/fr/design/remote/ui/list/AddedMemberList.java b/designer-base/src/com/fr/design/remote/ui/list/AddedMemberList.java index 8854f920f1..a2631d66f5 100644 --- a/designer-base/src/com/fr/design/remote/ui/list/AddedMemberList.java +++ b/designer-base/src/com/fr/design/remote/ui/list/AddedMemberList.java @@ -2,8 +2,8 @@ package com.fr.design.remote.ui.list; import com.fr.env.RemoteDesignMember; -import javax.swing.*; -import java.awt.*; +import javax.swing.DefaultListModel; +import java.awt.Point; import java.awt.event.MouseEvent; import java.util.Vector; diff --git a/designer-base/src/com/fr/design/remote/ui/list/AddedMemberListCellRender.java b/designer-base/src/com/fr/design/remote/ui/list/AddedMemberListCellRender.java index 71ec3bd61c..39dd08fb0f 100644 --- a/designer-base/src/com/fr/design/remote/ui/list/AddedMemberListCellRender.java +++ b/designer-base/src/com/fr/design/remote/ui/list/AddedMemberListCellRender.java @@ -5,8 +5,13 @@ import com.fr.design.gui.ilable.UILabel; import com.fr.design.remote.button.IconButton; import com.fr.env.RemoteDesignMember; -import javax.swing.*; -import java.awt.*; +import javax.swing.BorderFactory; +import javax.swing.JList; +import javax.swing.JPanel; +import javax.swing.ListCellRenderer; +import java.awt.Component; +import java.awt.Dimension; +import java.awt.FlowLayout; public class AddedMemberListCellRender extends JPanel implements ListCellRenderer { diff --git a/designer-base/src/com/fr/design/remote/ui/list/AddingMemberList.java b/designer-base/src/com/fr/design/remote/ui/list/AddingMemberList.java index 289d76a607..136d77cc11 100644 --- a/designer-base/src/com/fr/design/remote/ui/list/AddingMemberList.java +++ b/designer-base/src/com/fr/design/remote/ui/list/AddingMemberList.java @@ -2,8 +2,8 @@ package com.fr.design.remote.ui.list; import com.fr.env.RemoteDesignMember; -import javax.swing.*; -import java.awt.*; +import javax.swing.DefaultListModel; +import java.awt.Point; import java.awt.event.MouseEvent; import java.util.Vector; diff --git a/designer-base/src/com/fr/design/remote/ui/list/AddingMemberListCellRender.java b/designer-base/src/com/fr/design/remote/ui/list/AddingMemberListCellRender.java index f119432db9..0668d67f1b 100644 --- a/designer-base/src/com/fr/design/remote/ui/list/AddingMemberListCellRender.java +++ b/designer-base/src/com/fr/design/remote/ui/list/AddingMemberListCellRender.java @@ -5,8 +5,13 @@ import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.ilable.UILabel; import com.fr.env.RemoteDesignMember; -import javax.swing.*; -import java.awt.*; +import javax.swing.BorderFactory; +import javax.swing.JList; +import javax.swing.JPanel; +import javax.swing.ListCellRenderer; +import java.awt.Component; +import java.awt.Dimension; +import java.awt.FlowLayout; public class AddingMemberListCellRender extends JPanel implements ListCellRenderer { From 3b9319844757070fff5128dd79b115658501ed69 Mon Sep 17 00:00:00 2001 From: "yaoh.wu" Date: Mon, 4 Jun 2018 17:21:52 +0800 Subject: [PATCH 08/10] =?UTF-8?q?=E6=97=A0=E4=BB=BB=E5=8A=A1=EF=BC=8C?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=A7=84=E8=8C=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/gui/itree/filetree/TemplateFileTree.java | 4 ++-- .../remote/action/RemoteDesignAuthorityManagerAction.java | 5 +++-- .../com/fr/design/remote/ui/AuthorityListControlPane.java | 4 +++- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/designer-base/src/com/fr/design/gui/itree/filetree/TemplateFileTree.java b/designer-base/src/com/fr/design/gui/itree/filetree/TemplateFileTree.java index fec5d1e2fe..9818334914 100644 --- a/designer-base/src/com/fr/design/gui/itree/filetree/TemplateFileTree.java +++ b/designer-base/src/com/fr/design/gui/itree/filetree/TemplateFileTree.java @@ -1,13 +1,13 @@ package com.fr.design.gui.itree.filetree; import com.fr.base.Env; -import com.fr.base.FRContext; import com.fr.base.env.EnvContext; import com.fr.base.env.proxy.EnvProxy; import com.fr.base.env.resource.EnvConfigUtils; import com.fr.design.gui.itree.refreshabletree.ExpandMutableTreeNode; import com.fr.env.operator.file.TplFileOperator; import com.fr.file.filetree.FileNode; +import com.fr.log.FineLoggerFactory; import com.fr.stable.ArrayUtils; import com.fr.stable.StableUtils; import com.fr.stable.project.ProjectConstants; @@ -168,7 +168,7 @@ public class TemplateFileTree extends EnvFileTree { try { fileNodes = listFile(filePath); } catch (Exception e) { - FRContext.getLogger().error(e.getMessage(), e); + FineLoggerFactory.getLogger().error(e.getMessage(), e); } if (fileNodes == null) { fileNodes = new FileNode[0]; diff --git a/designer-base/src/com/fr/design/remote/action/RemoteDesignAuthorityManagerAction.java b/designer-base/src/com/fr/design/remote/action/RemoteDesignAuthorityManagerAction.java index e9550ee806..8d222701f5 100644 --- a/designer-base/src/com/fr/design/remote/action/RemoteDesignAuthorityManagerAction.java +++ b/designer-base/src/com/fr/design/remote/action/RemoteDesignAuthorityManagerAction.java @@ -10,6 +10,7 @@ import com.fr.design.mainframe.DesignerContext; import com.fr.design.remote.ui.AuthorityManagerPane; import com.fr.env.operator.authority.AuthorityOperator; import com.fr.general.Inter; +import com.fr.log.FineLoggerFactory; import com.fr.report.DesignAuthority; import java.awt.event.ActionEvent; @@ -41,7 +42,7 @@ public class RemoteDesignAuthorityManagerAction extends UpdateAction { managerPane.populate(authorities); } } catch (Exception exception) { - FRContext.getLogger().error(exception.getMessage()); + FineLoggerFactory.getLogger().error(exception.getMessage(), exception); } } @@ -54,7 +55,7 @@ public class RemoteDesignAuthorityManagerAction extends UpdateAction { try { success = EnvProxy.get(AuthorityOperator.class).updateAuthorities(authorities); } catch (Exception e) { - FRContext.getLogger().error(e.getMessage()); + FineLoggerFactory.getLogger().error(e.getMessage(), e); } FRContext.getLogger().info("update remote design authority: " + success); } diff --git a/designer-base/src/com/fr/design/remote/ui/AuthorityListControlPane.java b/designer-base/src/com/fr/design/remote/ui/AuthorityListControlPane.java index ad0255032e..03e6d44578 100644 --- a/designer-base/src/com/fr/design/remote/ui/AuthorityListControlPane.java +++ b/designer-base/src/com/fr/design/remote/ui/AuthorityListControlPane.java @@ -21,6 +21,7 @@ import com.fr.design.utils.gui.GUICoreUtils; import com.fr.env.RemoteDesignMember; import com.fr.general.ComparatorUtils; import com.fr.general.Inter; +import com.fr.log.FineLoggerFactory; import com.fr.report.DesignAuthority; import com.fr.stable.ArrayUtils; @@ -324,7 +325,7 @@ public class AuthorityListControlPane extends BasicPane { if (p[i] != null) { try { p[i].checkValid(); - } catch (Exception e) { + } catch (Exception ignore) { return i; } } @@ -339,6 +340,7 @@ public class AuthorityListControlPane extends BasicPane { try { checkValid(); } catch (Exception exp) { + FineLoggerFactory.getLogger().error(exp.getMessage(), exp); JOptionPane.showMessageDialog(AuthorityListControlPane.this, exp.getMessage()); authorityList.setSelectedIndex(idx); return true; From 27fa4a838e893610098d0a050249da188e0ac478 Mon Sep 17 00:00:00 2001 From: "yaoh.wu" Date: Mon, 4 Jun 2018 17:34:21 +0800 Subject: [PATCH 09/10] =?UTF-8?q?REPORT-6700=20=E5=9B=BD=E9=99=85=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/remote/ui/AuthorityEditorPane.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer-base/src/com/fr/design/remote/ui/AuthorityEditorPane.java b/designer-base/src/com/fr/design/remote/ui/AuthorityEditorPane.java index 59d24cb726..bb9c9cc406 100644 --- a/designer-base/src/com/fr/design/remote/ui/AuthorityEditorPane.java +++ b/designer-base/src/com/fr/design/remote/ui/AuthorityEditorPane.java @@ -32,7 +32,7 @@ public class AuthorityEditorPane extends BasicBeanPane { BorderFactory.createCompoundBorder( new EmptyBorder(6, 0, 6, 6), UITitledBorder.createBorderWithTitle( - Inter.getLocText("模板设计权限配置") + Inter.getLocText("Fine-Designer_Remote_Design_Template_Authority_Config") ) ) ); From 3d9fdb15afba15d0467a1bc7cd37f6b198f5dbd8 Mon Sep 17 00:00:00 2001 From: hzzz Date: Mon, 4 Jun 2018 17:57:58 +0800 Subject: [PATCH 10/10] fix --- designer-base/src/com/fr/design/DesignerEnvManager.java | 6 +++--- .../src/com/fr/design/actions/file/SwitchExistEnv.java | 4 ++-- .../src/com/fr/design/mainframe/DesignerFrame.java | 2 +- .../mainframe/loghandler/socketio/DesignerSocketIO.java | 4 ++-- designer-base/src/com/fr/env/EnvListPane.java | 4 ++-- designer-base/src/com/fr/env/LocalEnvPane.java | 3 +-- designer-base/src/com/fr/env/RemoteEnv.java | 6 +++--- designer-base/src/com/fr/env/RemoteEnvPane.java | 4 ++-- designer-base/src/com/fr/env/SignIn.java | 6 +++--- 9 files changed, 19 insertions(+), 20 deletions(-) diff --git a/designer-base/src/com/fr/design/DesignerEnvManager.java b/designer-base/src/com/fr/design/DesignerEnvManager.java index 06d2058600..209de7c6e0 100644 --- a/designer-base/src/com/fr/design/DesignerEnvManager.java +++ b/designer-base/src/com/fr/design/DesignerEnvManager.java @@ -6,10 +6,10 @@ package com.fr.design; import com.fr.base.BaseXMLUtils; import com.fr.base.FRContext; import com.fr.base.Utils; -import com.fr.base.env.resource.EnvConfigUtils; -import com.fr.base.env.resource.LocalEnvConfig; -import com.fr.base.env.resource.RemoteEnvConfig; import com.fr.core.env.EnvConfig; +import com.fr.core.env.resource.EnvConfigUtils; +import com.fr.core.env.resource.LocalEnvConfig; +import com.fr.core.env.resource.RemoteEnvConfig; import com.fr.design.actions.help.alphafine.AlphaFineConfigManager; import com.fr.design.constants.UIConstants; import com.fr.env.SignIn; diff --git a/designer-base/src/com/fr/design/actions/file/SwitchExistEnv.java b/designer-base/src/com/fr/design/actions/file/SwitchExistEnv.java index 278dfe5ccb..838fce4e00 100644 --- a/designer-base/src/com/fr/design/actions/file/SwitchExistEnv.java +++ b/designer-base/src/com/fr/design/actions/file/SwitchExistEnv.java @@ -1,9 +1,9 @@ package com.fr.design.actions.file; import com.fr.base.BaseUtils; -import com.fr.base.env.resource.LocalEnvConfig; -import com.fr.base.env.resource.RemoteEnvConfig; import com.fr.core.env.EnvConfig; +import com.fr.core.env.resource.LocalEnvConfig; +import com.fr.core.env.resource.RemoteEnvConfig; import com.fr.design.DesignerEnvManager; import com.fr.design.actions.UpdateAction; import com.fr.design.data.DesignTableDataManager; diff --git a/designer-base/src/com/fr/design/mainframe/DesignerFrame.java b/designer-base/src/com/fr/design/mainframe/DesignerFrame.java index 1d61f5673a..828c6623b2 100644 --- a/designer-base/src/com/fr/design/mainframe/DesignerFrame.java +++ b/designer-base/src/com/fr/design/mainframe/DesignerFrame.java @@ -6,8 +6,8 @@ package com.fr.design.mainframe; import com.fr.base.BaseUtils; import com.fr.base.Env; import com.fr.base.FRContext; -import com.fr.base.env.resource.EnvConfigUtils; import com.fr.core.env.EnvConfig; +import com.fr.core.env.resource.EnvConfigUtils; import com.fr.design.DesignModelAdapter; import com.fr.design.DesignState; import com.fr.design.DesignerEnvManager; diff --git a/designer-base/src/com/fr/design/mainframe/loghandler/socketio/DesignerSocketIO.java b/designer-base/src/com/fr/design/mainframe/loghandler/socketio/DesignerSocketIO.java index a47caabfd5..23393dcb29 100644 --- a/designer-base/src/com/fr/design/mainframe/loghandler/socketio/DesignerSocketIO.java +++ b/designer-base/src/com/fr/design/mainframe/loghandler/socketio/DesignerSocketIO.java @@ -1,10 +1,10 @@ package com.fr.design.mainframe.loghandler.socketio; -import com.fr.base.env.EnvContext; -import com.fr.base.env.resource.LocalEnvConfig; import com.fr.core.env.EnvConfig; import com.fr.core.env.EnvConstants; +import com.fr.core.env.EnvContext; import com.fr.core.env.EnvEvent; +import com.fr.core.env.resource.LocalEnvConfig; import com.fr.decision.webservice.utils.DecisionServiceConstants; import com.fr.design.mainframe.loghandler.DesignerLogHandler; import com.fr.event.Event; diff --git a/designer-base/src/com/fr/env/EnvListPane.java b/designer-base/src/com/fr/env/EnvListPane.java index b7f3b29ede..1927f127a2 100644 --- a/designer-base/src/com/fr/env/EnvListPane.java +++ b/designer-base/src/com/fr/env/EnvListPane.java @@ -1,8 +1,8 @@ package com.fr.env; -import com.fr.base.env.resource.LocalEnvConfig; -import com.fr.base.env.resource.RemoteEnvConfig; import com.fr.core.env.EnvConfig; +import com.fr.core.env.resource.LocalEnvConfig; +import com.fr.core.env.resource.RemoteEnvConfig; import com.fr.design.DesignerEnvManager; import com.fr.design.gui.controlpane.JListControlPane; import com.fr.design.gui.controlpane.NameObjectCreator; diff --git a/designer-base/src/com/fr/env/LocalEnvPane.java b/designer-base/src/com/fr/env/LocalEnvPane.java index d2719636da..57f37d1cd3 100644 --- a/designer-base/src/com/fr/env/LocalEnvPane.java +++ b/designer-base/src/com/fr/env/LocalEnvPane.java @@ -1,7 +1,6 @@ package com.fr.env; -import com.fr.base.env.resource.LocalEnvConfig; -import com.fr.dav.LocalEnv; +import com.fr.core.env.resource.LocalEnvConfig; import com.fr.design.beans.BasicBeanPane; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itextarea.UITextArea; diff --git a/designer-base/src/com/fr/env/RemoteEnv.java b/designer-base/src/com/fr/env/RemoteEnv.java index a9124b9e91..8e17a4e22b 100644 --- a/designer-base/src/com/fr/env/RemoteEnv.java +++ b/designer-base/src/com/fr/env/RemoteEnv.java @@ -1,15 +1,15 @@ package com.fr.env; -import com.fr.base.env.old.AbstractEnv; import com.fr.base.EnvException; import com.fr.base.TableData; -import com.fr.base.env.EnvContext; -import com.fr.base.env.resource.RemoteEnvConfig; import com.fr.base.remote.RemoteDeziConstants; import com.fr.core.env.EnvConstants; +import com.fr.core.env.EnvContext; +import com.fr.core.env.resource.RemoteEnvConfig; import com.fr.data.TableDataSource; import com.fr.data.impl.EmbeddedTableData; import com.fr.data.impl.storeproc.StoreProcedure; +import com.fr.dav.AbstractEnv; import com.fr.dav.DavXMLUtils; import com.fr.design.DesignerEnvManager; import com.fr.design.mainframe.DesignerContext; diff --git a/designer-base/src/com/fr/env/RemoteEnvPane.java b/designer-base/src/com/fr/env/RemoteEnvPane.java index 20ca4715a2..1e13d7e4b5 100644 --- a/designer-base/src/com/fr/env/RemoteEnvPane.java +++ b/designer-base/src/com/fr/env/RemoteEnvPane.java @@ -1,8 +1,8 @@ package com.fr.env; import com.fr.base.FRContext; -import com.fr.base.env.resource.EnvConfigUtils; -import com.fr.base.env.resource.RemoteEnvConfig; +import com.fr.core.env.resource.EnvConfigUtils; +import com.fr.core.env.resource.RemoteEnvConfig; import com.fr.design.DesignerEnvManager; import com.fr.design.beans.BasicBeanPane; import com.fr.design.border.UITitledBorder; diff --git a/designer-base/src/com/fr/env/SignIn.java b/designer-base/src/com/fr/env/SignIn.java index 9bf5b90810..1e31677945 100644 --- a/designer-base/src/com/fr/env/SignIn.java +++ b/designer-base/src/com/fr/env/SignIn.java @@ -2,11 +2,11 @@ package com.fr.env; import com.fr.base.FRContext; -import com.fr.base.env.EnvContext; -import com.fr.base.env.resource.EnvConfigUtils; -import com.fr.base.env.resource.RemoteEnvConfig; import com.fr.core.env.EnvConfig; +import com.fr.core.env.EnvContext; import com.fr.core.env.EnvEvent; +import com.fr.core.env.resource.EnvConfigUtils; +import com.fr.core.env.resource.RemoteEnvConfig; import com.fr.dav.LocalEnv; import com.fr.design.utils.DesignUtils; import com.fr.event.Event;