|
|
|
@ -9,6 +9,7 @@ import com.fr.design.dialog.FineJOptionPane;
|
|
|
|
|
import com.fr.design.dialog.UIDialog; |
|
|
|
|
import com.fr.design.gui.ibutton.UIButton; |
|
|
|
|
import com.fr.design.gui.icontainer.UIScrollPane; |
|
|
|
|
import com.fr.design.gui.ilable.ActionLabel; |
|
|
|
|
import com.fr.design.gui.ilable.UILabel; |
|
|
|
|
import com.fr.design.gui.itextfield.UITextField; |
|
|
|
|
import com.fr.design.i18n.Toolkit; |
|
|
|
@ -16,6 +17,7 @@ import com.fr.design.layout.TableLayout;
|
|
|
|
|
import com.fr.design.layout.TableLayoutHelper; |
|
|
|
|
import com.fr.design.mainframe.DesignerContext; |
|
|
|
|
import com.fr.design.update.actions.FileProcess; |
|
|
|
|
import com.fr.design.update.actions.NewFeatureAction; |
|
|
|
|
import com.fr.design.update.domain.UpdateInfoCachePropertyManager; |
|
|
|
|
import com.fr.design.update.utils.UpdateFileUtils; |
|
|
|
|
import com.fr.design.update.ui.widget.LoadingLabel; |
|
|
|
@ -86,6 +88,7 @@ public class UpdateMainDialog extends UIDialog {
|
|
|
|
|
private static final String HYPHEN = "-"; |
|
|
|
|
|
|
|
|
|
private final SimpleDateFormat CHANGELOG_FORMAT = new SimpleDateFormat("M/d/y, h:m:s a", Locale.ENGLISH); |
|
|
|
|
private final SimpleDateFormat UPDATELOG_FORMAT = new SimpleDateFormat("yyyy-MM-dd"); |
|
|
|
|
private final SimpleDateFormat UPDATE_INFO_TABLE_FORMAT = new SimpleDateFormat("yyyy.MM.dd"); |
|
|
|
|
|
|
|
|
|
private JSONObject downloadFileConfig; |
|
|
|
@ -185,7 +188,7 @@ public class UpdateMainDialog extends UIDialog {
|
|
|
|
|
double[] rowUpdateContentPaneSize = {TableLayout.PREFERRED}; |
|
|
|
|
double[] columnUpdateContentPaneSize = {TableLayout.PREFERRED, TableLayout.FILL, TableLayout.PREFERRED}; |
|
|
|
|
double[] rowUpdateSubContentPaneSize = {UPDATE_CONTENT_PANE_ROW_SIZE, TableLayout.PREFERRED, TableLayout.PREFERRED, TableLayout.PREFERRED, UPDATE_CONTENT_PANE_ROW_SIZE}; |
|
|
|
|
double[] columnUpdateSubContentPaneSize = {UPDATE_CONTENT_PANE_COLUMN_SIZE, TableLayout.FILL, TableLayout.PREFERRED}; |
|
|
|
|
double[] columnUpdateSubContentPaneSize = {UPDATE_CONTENT_PANE_COLUMN_SIZE, TableLayout.PREFERRED, TableLayout.PREFERRED}; |
|
|
|
|
double[] columnUpdateSubContentPaneLabelSize = {UPDATE_CONTENT_PANE_LABEL_COLUMN_SIZE, TableLayout.PREFERRED}; |
|
|
|
|
|
|
|
|
|
JPanel jarUpdateContentPane = new JPanel(); |
|
|
|
@ -196,7 +199,8 @@ public class UpdateMainDialog extends UIDialog {
|
|
|
|
|
new Component[]{new UILabel(), new UILabel(), new UILabel()}, |
|
|
|
|
new Component[]{new UILabel(), updateVersionReminderPane, new UILabel()}, |
|
|
|
|
new Component[]{new UILabel(), initPaneContent(Color.WHITE, rowUpdateContentPaneSize, columnUpdateSubContentPaneLabelSize, new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Updater_JAR_Version")), jarCurrentLabel), new UILabel()}, |
|
|
|
|
new Component[]{new UILabel(), initPaneContent(Color.WHITE, rowUpdateContentPaneSize, columnUpdateSubContentPaneLabelSize, new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Updater_Latest_JAR")), loadingLabel), new UILabel()}, |
|
|
|
|
new Component[]{new UILabel(), initPaneContent(Color.WHITE, rowUpdateContentPaneSize, columnUpdateSubContentPaneLabelSize, new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Updater_Latest_JAR")), loadingLabel), |
|
|
|
|
getNewFeatureActionLabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Latest_Feature_Detail"))}, |
|
|
|
|
new Component[]{new UILabel(), new UILabel(), new UILabel()} |
|
|
|
|
}, rowUpdateSubContentPaneSize, columnUpdateSubContentPaneSize, LayoutConstants.VGAP_LARGE); |
|
|
|
|
jarUpdateContentPane2.setBackground(Color.WHITE); |
|
|
|
@ -417,14 +421,21 @@ public class UpdateMainDialog extends UIDialog {
|
|
|
|
|
if (downloadFileConfig == null) { |
|
|
|
|
throw new Exception("network error."); |
|
|
|
|
} |
|
|
|
|
HttpGet get = new HttpGet(CloudCenter.getInstance().acquireUrlByKind("changelog10") + "&start=" + lastUpdateCacheTime + "&end=" + getLatestJARTimeStr()); |
|
|
|
|
httpClient = HttpToolbox.getHttpClient(CloudCenter.getInstance().acquireUrlByKind("changelog10") + "&start=" + lastUpdateCacheTime + "&end=" + getLatestJARTimeStr()); |
|
|
|
|
|
|
|
|
|
HttpGet get = new HttpGet(CloudCenter.getInstance().acquireUrlByKind("updatelog") + "?start=" + lastUpdateCacheTime + "&end=" + getLatestJARTimeStr()); |
|
|
|
|
httpClient = HttpToolbox.getHttpClient(CloudCenter.getInstance().acquireUrlByKind("updatelog") + "?start=" + lastUpdateCacheTime + "&end=" + getLatestJARTimeStr()); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
response = httpClient.execute(get); |
|
|
|
|
String responseText = CommonIOUtils.inputStream2String(response.getEntity().getContent(),EncodeConstants.ENCODING_UTF_8).trim(); |
|
|
|
|
|
|
|
|
|
JSONArray array = JSONArray.create(); |
|
|
|
|
//假如返回"-1",说明socket出错了
|
|
|
|
|
if (!ComparatorUtils.equals(responseText, "-1")) { |
|
|
|
|
array = new JSONArray(responseText); |
|
|
|
|
JSONObject respObject = new JSONObject(responseText); |
|
|
|
|
if (respObject != null && "success".equals(respObject.get("status"))) { |
|
|
|
|
array = respObject.getJSONArray("data"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return array; |
|
|
|
|
} catch (Exception e) { |
|
|
|
@ -483,7 +494,7 @@ public class UpdateMainDialog extends UIDialog {
|
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (isValidLogInfo(updateInfo[1])) { |
|
|
|
|
if (isValidLogInfo(updateInfo[1]) && curJarDate != null) { |
|
|
|
|
updateInfoList.add(new Object[]{UPDATE_INFO_TABLE_FORMAT.format(updateTime), updateInfo[1], updateTime.after(curJarDate)}); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -531,9 +542,9 @@ public class UpdateMainDialog extends UIDialog {
|
|
|
|
|
private ArrayList<Object[]> generateUpdateInfoList(JSONArray jsonArray, String keyword) throws Exception { |
|
|
|
|
for (int i = 0; i < jsonArray.length(); i++) { |
|
|
|
|
JSONObject jo = (JSONObject) jsonArray.get(i); |
|
|
|
|
String updateTitle = (String) jo.get("title"); |
|
|
|
|
String updateTimeStr = (String) jo.get("update"); |
|
|
|
|
Date updateTime = CHANGELOG_FORMAT.parse(updateTimeStr); |
|
|
|
|
String updateTitle = (String) jo.get("jiraId") + jo.get("info"); |
|
|
|
|
String updateTimeStr = (String) jo.get("updateTime"); |
|
|
|
|
Date updateTime = UPDATELOG_FORMAT.parse(updateTimeStr); |
|
|
|
|
//形如 Build#release-2018.07.31.03.03.52.80
|
|
|
|
|
String currentNO = GeneralUtils.readBuildNO(); |
|
|
|
|
Date curJarDate = UPDATE_INFO_TABLE_FORMAT.parse(currentNO, new ParsePosition(currentNO.indexOf("-") + 1)); |
|
|
|
@ -608,41 +619,7 @@ public class UpdateMainDialog extends UIDialog {
|
|
|
|
|
* jar包更新按钮监听器 |
|
|
|
|
*/ |
|
|
|
|
private void addActionListenerForUpdateBtn() { |
|
|
|
|
updateButton.addActionListener(new ActionListener() { |
|
|
|
|
@Override |
|
|
|
|
public void actionPerformed(ActionEvent e) { |
|
|
|
|
String[] option = {Toolkit.i18nText("Fine-Design_Report_Yes"), Toolkit.i18nText("Fine-Design_Report_No")}; |
|
|
|
|
int a = JOptionPane.showOptionDialog(getParent(), Toolkit.i18nText("Fine-Design_Update_Info_Information"), |
|
|
|
|
Toolkit.i18nText("Fine-Design_Update_Info_Title"),JOptionPane.YES_NO_OPTION, QUESTION_MESSAGE, UIManager.getIcon("OptionPane.warningIcon"), option, 1); |
|
|
|
|
if (a == 0) { |
|
|
|
|
progressBar.setVisible(true); |
|
|
|
|
progressBar.setString(Toolkit.i18nText("Fine-Design_Update_Info_Wait_Message")); |
|
|
|
|
UpdateCallBack callBack = new UpdateProgressCallBack(progressBar); |
|
|
|
|
updateButton.setEnabled(false); |
|
|
|
|
updateLabel.setVisible(false); |
|
|
|
|
RestoreResultDialog.deletePreviousPropertyFile(); |
|
|
|
|
final String installLib = StableUtils.pathJoin(StableUtils.getInstallHome(), ProjectConstants.LOGS_NAME, UpdateConstants.INSTALL_LIB); |
|
|
|
|
final JFrame frame = DesignerContext.getDesignerFrame(); |
|
|
|
|
final RestartHelper helper = new RestartHelper(); |
|
|
|
|
FineProcessContext.getParentPipe().fire(FineProcessEngineEvent.DESTROY); |
|
|
|
|
new FileProcess(callBack) { |
|
|
|
|
@Override |
|
|
|
|
public void onDownloadSuccess() { |
|
|
|
|
progressBar.setVisible(false); |
|
|
|
|
deleteForDesignerUpdate(installLib); |
|
|
|
|
helper.restartForUpdate(frame); |
|
|
|
|
} |
|
|
|
|
@Override |
|
|
|
|
public void onDownloadFailed() { |
|
|
|
|
progressBar.setVisible(false); |
|
|
|
|
deleteForDesignerUpdate(installLib); |
|
|
|
|
FineJOptionPane.showMessageDialog(getParent(), Toolkit.i18nText("Fine-Design_Update_Info_Failed_Message")); |
|
|
|
|
helper.restartForUpdate(frame); |
|
|
|
|
} |
|
|
|
|
}.execute(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
updateButton.addActionListener(new UpdateAction()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void deleteForDesignerUpdate(String installLib) { |
|
|
|
@ -688,6 +665,12 @@ public class UpdateMainDialog extends UIDialog {
|
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private ActionLabel getNewFeatureActionLabel(final String text){ |
|
|
|
|
ActionLabel actionLabel = new ActionLabel(text); |
|
|
|
|
actionLabel.addActionListener(new NewFeatureAction()); |
|
|
|
|
return actionLabel; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 显示窗口 |
|
|
|
|
*/ |
|
|
|
@ -705,4 +688,42 @@ public class UpdateMainDialog extends UIDialog {
|
|
|
|
|
@Override |
|
|
|
|
public void checkValid() throws Exception { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private class UpdateAction implements ActionListener { |
|
|
|
|
@Override |
|
|
|
|
public void actionPerformed(ActionEvent e) { |
|
|
|
|
String[] option = {Toolkit.i18nText("Fine-Design_Report_Yes"), Toolkit.i18nText("Fine-Design_Report_No")}; |
|
|
|
|
int a = JOptionPane.showOptionDialog(getParent(), Toolkit.i18nText("Fine-Design_Update_Info_Information"), |
|
|
|
|
Toolkit.i18nText("Fine-Design_Update_Info_Title"),JOptionPane.YES_NO_OPTION, QUESTION_MESSAGE, UIManager.getIcon("OptionPane.warningIcon"), option, 1); |
|
|
|
|
if (a == 0) { |
|
|
|
|
progressBar.setVisible(true); |
|
|
|
|
progressBar.setString(Toolkit.i18nText("Fine-Design_Update_Info_Wait_Message")); |
|
|
|
|
UpdateCallBack callBack = new UpdateProgressCallBack(progressBar); |
|
|
|
|
updateButton.setEnabled(false); |
|
|
|
|
updateLabel.setVisible(false); |
|
|
|
|
RestoreResultDialog.deletePreviousPropertyFile(); |
|
|
|
|
final String installLib = StableUtils.pathJoin(StableUtils.getInstallHome(), ProjectConstants.LOGS_NAME, UpdateConstants.INSTALL_LIB); |
|
|
|
|
final JFrame frame = DesignerContext.getDesignerFrame(); |
|
|
|
|
final RestartHelper helper = new RestartHelper(); |
|
|
|
|
FineProcessContext.getParentPipe().fire(FineProcessEngineEvent.DESTROY); |
|
|
|
|
new FileProcess(callBack) { |
|
|
|
|
@Override |
|
|
|
|
public void onDownloadSuccess() { |
|
|
|
|
progressBar.setVisible(false); |
|
|
|
|
deleteForDesignerUpdate(installLib); |
|
|
|
|
helper.restartForUpdate(frame); |
|
|
|
|
} |
|
|
|
|
@Override |
|
|
|
|
public void onDownloadFailed() { |
|
|
|
|
progressBar.setVisible(false); |
|
|
|
|
deleteForDesignerUpdate(installLib); |
|
|
|
|
FineJOptionPane.showMessageDialog(getParent(), Toolkit.i18nText("Fine-Design_Update_Info_Failed_Message")); |
|
|
|
|
helper.restartForUpdate(frame); |
|
|
|
|
} |
|
|
|
|
}.execute(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |