diff --git a/designer-base/src/main/java/com/fr/design/update/ui/dialog/UpdateMainDialog.java b/designer-base/src/main/java/com/fr/design/update/ui/dialog/UpdateMainDialog.java index ade5c6e273..53c0c49704 100644 --- a/designer-base/src/main/java/com/fr/design/update/ui/dialog/UpdateMainDialog.java +++ b/designer-base/src/main/java/com/fr/design/update/ui/dialog/UpdateMainDialog.java @@ -22,6 +22,7 @@ import com.fr.design.update.ui.widget.UpdateInfoTableCellRender; import com.fr.design.update.ui.widget.UpdateInfoTableModel; import com.fr.design.update.ui.widget.UpdateInfoTextAreaCellRender; import com.fr.design.utils.gui.GUICoreUtils; +import com.fr.general.CloudCenter; import com.fr.general.ComparatorUtils; import com.fr.general.DateUtils; import com.fr.general.GeneralContext; @@ -29,6 +30,7 @@ import com.fr.general.GeneralUtils; import com.fr.general.IOUtils; import com.fr.general.SiteCenter; import com.fr.general.http.HttpClient; +import com.fr.general.http.HttpToolbox; import com.fr.json.JSONArray; import com.fr.json.JSONObject; import com.fr.log.FineLoggerFactory; @@ -37,6 +39,7 @@ import com.fr.stable.ProductConstants; import com.fr.stable.StableUtils; import com.fr.stable.StringUtils; import com.fr.stable.project.ProjectConstants; +import com.fr.third.org.apache.commons.codec.digest.DigestUtils; import com.fr.workspace.WorkContext; import com.sun.java.swing.plaf.motif.MotifProgressBarUI; @@ -371,9 +374,7 @@ public class UpdateMainDialog extends UIDialog { new SwingWorker() { @Override protected JSONObject doInBackground() throws Exception { - HttpClient hc = new HttpClient(SiteCenter.getInstance().acquireUrlByKind("jar10.update")); - hc.setTimeout(UpdateConstants.CONNECTION_TIMEOUT); - return new JSONObject(hc.getResponseText()); + return new JSONObject(HttpToolbox.get(CloudCenter.getInstance().acquireUrlByKind("jar10.update"))); } @Override @@ -620,8 +621,11 @@ public class UpdateMainDialog extends UIDialog { long downloadSize = jo.optLong("size"); if (ComparatorUtils.equals(category, "server")) { File currentJAR = new File(StableUtils.pathJoin(WorkContext.getCurrent().getPath(), ProjectConstants.LIB_NAME, downloadName)); - if (currentJAR.exists() && ComparatorUtils.equals(currentJAR.length(), downloadSize)) { - //假如大小一样的jar包就不要下载了 + String currentMD5 = getCurrentJarMD5(currentJAR); + String downloadMD5 = jo.optString("md5"); + boolean exist = currentJAR.exists() && ComparatorUtils.equals(currentJAR.length(), downloadSize) && ComparatorUtils.equals(currentMD5, downloadMD5); + if (exist) { + // 如果jar包存在且MD5值和大小与oss上的一致 不下载 continue; } } @@ -630,6 +634,31 @@ public class UpdateMainDialog extends UIDialog { } } + /** + * 获取当前jar的md5 + * @param currentJAR + * @return + */ + private String getCurrentJarMD5(File currentJAR) { + String md5 = StringUtils.EMPTY; + FileInputStream input = null; + try { + input = new FileInputStream(currentJAR); + md5 = DigestUtils.md5Hex(input); + } catch (Exception ignore) { + + } finally { + if (input != null) { + try { + input.close(); + } catch (IOException e) { + FineLoggerFactory.getLogger().error(e.getMessage(), e); + } + } + } + return md5; + } + /** * jar包更新按钮监听器 */ diff --git a/designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java b/designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java index 3e70f7d0f6..d5753ce155 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java @@ -1,6 +1,5 @@ package com.fr.design.mainframe.widget.ui; -import com.fr.base.BaseUtils; import com.fr.design.data.DataCreatorUI; import com.fr.design.designer.beans.events.DesignerEvent; import com.fr.design.designer.creator.XCreator; @@ -28,13 +27,13 @@ import com.fr.design.widget.Operator; import com.fr.design.widget.ui.designer.component.WidgetAbsoluteBoundPane; import com.fr.design.widget.ui.designer.component.WidgetBoundPane; import com.fr.design.widget.ui.designer.component.WidgetCardTagBoundPane; -import com.fr.form.ui.FormWidgetHelper; import com.fr.form.ui.Widget; import com.fr.form.ui.container.WScaleLayout; import com.fr.form.ui.container.WTitleLayout; import com.fr.form.ui.widget.CRBoundsWidget; import com.fr.general.ComparatorUtils; +import com.fr.general.IOUtils; import com.fr.stable.StringUtils; import javax.swing.BorderFactory; @@ -91,6 +90,7 @@ public class FormWidgetCardPane extends AbstractAttrNoScrollPane { return new WidgetBoundPane(xCreator); } + @Override protected JPanel createContentPane() { return null; } @@ -218,21 +218,14 @@ public class FormWidgetCardPane extends AbstractAttrNoScrollPane { UITextField widgetNameField = widgetPropertyPane.getWidgetNameField(); String toSetWidgetName = widgetNameField.getText(); String currentWidgetName = widget.getWidgetName(); - // 设置的组件名和当前组件名相同 直接返回 - if (ComparatorUtils.equals(toSetWidgetName, currentWidgetName)) { - return; - } - String containerName = designer.getTarget().getContainer().getWidgetName(); - Widget existWidget = FormWidgetHelper.findWidgetByName(widget, widgetNameField.getText()); - // 判断设置的组件名是否和容器同名以及组件是否在容器在存在 满足任何其一 抛出提示 - boolean exist = ComparatorUtils.equals(containerName, toSetWidgetName) || existWidget != null; + boolean exist = designer.getTarget().isNameExist(toSetWidgetName) && !ComparatorUtils.equals(toSetWidgetName, currentWidgetName); if (exist) { widgetNameField.setText(currentWidgetName); - JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Widget_Rename_Failure"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Joption_News"), JOptionPane.ERROR_MESSAGE, BaseUtils.readIcon("com/fr/design/form/images/joption_failure.png")); + JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Widget_Rename_Failure"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Joption_News"), JOptionPane.ERROR_MESSAGE, IOUtils.readIcon("com/fr/design/form/images/joption_failure.png")); return; } widgetPropertyPane.update(widget); - xCreator.resetCreatorName(toSetWidgetName); + xCreator.resetCreatorName(currentWidgetName); xCreator.resetVisible(widget.isVisible()); designer.getEditListenerTable().fireCreatorModified(xCreator, DesignerEvent.CREATOR_RENAMED); return; @@ -262,6 +255,7 @@ public class FormWidgetCardPane extends AbstractAttrNoScrollPane { creator.firePropertyChange(); } + @Override public String getIconPath() { return StringUtils.EMPTY; }