plough
6 years ago
8 changed files with 441 additions and 30 deletions
@ -0,0 +1,127 @@
|
||||
package com.fr.design.onlineupdate.push; |
||||
|
||||
import com.fr.design.dialog.UIDialog; |
||||
import com.fr.design.ui.ModernUIPane; |
||||
import com.fr.design.utils.gui.GUICoreUtils; |
||||
|
||||
import javax.swing.JPanel; |
||||
import java.awt.BorderLayout; |
||||
import java.awt.Dimension; |
||||
import java.awt.Frame; |
||||
|
||||
/** |
||||
* Created by plough on 2019/4/10. |
||||
*/ |
||||
class DesignerPushUpdateDialog extends UIDialog { |
||||
public static final Dimension DEFAULT = new Dimension(640, 320); |
||||
|
||||
private ModernUIPane<Model> jsPane; |
||||
|
||||
private DesignerPushUpdateDialog(Frame parent) { |
||||
super(parent); |
||||
setModal(true); |
||||
initComponents(); |
||||
} |
||||
|
||||
static void createAndShow(Frame parent, DesignerUpdateInfo updateInfo) { |
||||
DesignerPushUpdateDialog dialog = new DesignerPushUpdateDialog(parent); |
||||
dialog.populate(updateInfo); |
||||
dialog.showDialog(); |
||||
} |
||||
|
||||
private void initComponents() { |
||||
JPanel contentPane = (JPanel) getContentPane(); |
||||
contentPane.setLayout(new BorderLayout()); |
||||
|
||||
jsPane = new ModernUIPane.Builder<Model>() |
||||
.withEMB("/com/fr/design/ui/onlineupdate/push/pushUpdate.html").namespace("Pool").build(); |
||||
|
||||
contentPane.add(jsPane); |
||||
} |
||||
|
||||
private void populate(DesignerUpdateInfo updateInfo) { |
||||
Model model = createModel(updateInfo); |
||||
jsPane.populate(model); |
||||
} |
||||
|
||||
private Model createModel(DesignerUpdateInfo updateInfo) { |
||||
Model model = new Model(); |
||||
model.setVersion(updateInfo.getPushVersion()); |
||||
model.setContent(updateInfo.getPushContent()); |
||||
model.setMoreInfoUrl(updateInfo.getMoreInfoUrl()); |
||||
model.setBackgroundUrl(updateInfo.getBackgroundUrl()); |
||||
return model; |
||||
} |
||||
|
||||
@Override |
||||
public void checkValid() throws Exception { |
||||
// do nothing
|
||||
} |
||||
|
||||
/** |
||||
* 显示窗口 |
||||
*/ |
||||
private void showDialog() { |
||||
setSize(DEFAULT); |
||||
setUndecorated(true); |
||||
GUICoreUtils.centerWindow(this); |
||||
setVisible(true); |
||||
} |
||||
|
||||
public class Model { |
||||
private String version; |
||||
private String content; |
||||
private String moreInfoUrl; |
||||
private String backgroundUrl; |
||||
|
||||
public String getVersion() { |
||||
return version; |
||||
} |
||||
|
||||
public void setVersion(String version) { |
||||
this.version = version; |
||||
} |
||||
|
||||
public String getContent() { |
||||
return content; |
||||
} |
||||
|
||||
public void setContent(String content) { |
||||
this.content = content; |
||||
} |
||||
|
||||
public String getMoreInfoUrl() { |
||||
return moreInfoUrl; |
||||
} |
||||
|
||||
public void setMoreInfoUrl(String moreInfoUrl) { |
||||
this.moreInfoUrl = moreInfoUrl; |
||||
} |
||||
|
||||
public String getBackgroundUrl() { |
||||
return backgroundUrl; |
||||
} |
||||
|
||||
public void setBackgroundUrl(String backgroundUrl) { |
||||
this.backgroundUrl = backgroundUrl; |
||||
} |
||||
|
||||
public void updateNow() { |
||||
DesignerPushUpdateManager.getInstance().doUpdate(); |
||||
exit(); |
||||
} |
||||
|
||||
public void remindNextTime() { |
||||
exit(); |
||||
} |
||||
|
||||
public void skipThisVersion() { |
||||
DesignerPushUpdateManager.getInstance().skipCurrentPushVersion(); |
||||
exit(); |
||||
} |
||||
|
||||
private void exit() { |
||||
DesignerPushUpdateDialog.this.dialogExit(); |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,179 @@
|
||||
<!DOCTYPE html> |
||||
<html lang="en"> |
||||
<head> |
||||
<meta charset="UTF-8"> |
||||
<title>Push Update</title> |
||||
<link rel="stylesheet" href="emb:/com/fr/web/ui/fineui.min.css"/> |
||||
<script src="emb:/com/fr/web/ui/fineui.min.js"></script> |
||||
<style> |
||||
.title { |
||||
font-size: 30px; |
||||
} |
||||
.desc { |
||||
margin-top: 35px; |
||||
} |
||||
.moreInfo { |
||||
margin-top: 15px; |
||||
} |
||||
.buttonGroup { |
||||
margin-top: 35px; |
||||
} |
||||
.button-ignore { |
||||
|
||||
} |
||||
body { |
||||
padding-left: 30px; |
||||
padding-top: 30px; |
||||
color: white; |
||||
} |
||||
</style> |
||||
</head> |
||||
<body> |
||||
<script> |
||||
// var EVENT_POPULATE = "EVENT_POPULATE"; |
||||
|
||||
// var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver; |
||||
// |
||||
// var observer = new MutationObserver(function(mutations) { |
||||
// mutations.forEach(function(mutation) { |
||||
// if (mutation.type === "attributes" && window.Pool) { |
||||
// console.log("attributes changed"); |
||||
// window.fireEvent(EVENT_POPULATE); |
||||
// } |
||||
// }); |
||||
// }); |
||||
// |
||||
// observer.observe(window, { |
||||
// attributes: true //configure it to listen to attribute changes |
||||
// }); |
||||
|
||||
|
||||
|
||||
|
||||
window.addEventListener("load", function (ev) { |
||||
// alert(window.Pool.data); |
||||
// todo: 开发临时方案 |
||||
// setTimeout(function () { |
||||
|
||||
console.log(window.Pool.data); |
||||
var title = BI.createWidget({ |
||||
type: "bi.vertical", |
||||
items: [ |
||||
{ |
||||
type: "bi.label", |
||||
text: "发现新版本", |
||||
cls: "title", |
||||
textAlign: "left" |
||||
}, |
||||
{ |
||||
type: "bi.label", |
||||
text: Pool.data.getVersion(), |
||||
textAlign: "left" |
||||
} |
||||
] |
||||
}); |
||||
|
||||
var desc = BI.createWidget({ |
||||
type: "bi.vertical", |
||||
cls: "desc", |
||||
items: [ |
||||
{ |
||||
type: "bi.label", |
||||
// text: "1) xxx", |
||||
text: Pool.data.getContent(), |
||||
textAlign: "left" |
||||
} |
||||
// { |
||||
// type: "bi.label", |
||||
// text: "2) ldsnvls df", |
||||
// textAlign: "left" |
||||
// } |
||||
] |
||||
}); |
||||
|
||||
var moreInfo = BI.createWidget({ |
||||
type: "bi.text_button", |
||||
text: "更多信息", |
||||
cls: "moreInfo", |
||||
textAlign: "left" |
||||
}); |
||||
|
||||
var buttonGroup = BI.createWidget({ |
||||
type: 'bi.left', |
||||
cls: "buttonGroup", |
||||
items: [ |
||||
{ |
||||
type: 'bi.button', |
||||
text: '立即更新', |
||||
level: 'common', |
||||
height: 30, |
||||
handler: function() { |
||||
Pool.data.updateNow(); |
||||
} |
||||
}, |
||||
{ |
||||
el: { |
||||
type: 'bi.button', |
||||
text: '下次启动提醒我', |
||||
level: 'ignore', |
||||
height: 30, |
||||
handler: function() { |
||||
Pool.data.remindNextTime(); |
||||
} |
||||
}, |
||||
lgap: 10 |
||||
}, |
||||
{ |
||||
el: { |
||||
type: 'bi.button', |
||||
text: '跳过此版本', |
||||
level: 'ignore', |
||||
height: 30, |
||||
handler: function() { |
||||
Pool.data.skipThisVersion(); |
||||
} |
||||
}, |
||||
lgap: 10 |
||||
} |
||||
] |
||||
}); |
||||
|
||||
BI.createWidget({ |
||||
type:"bi.vertical", |
||||
element: "body", |
||||
cls: "container", |
||||
items: [ |
||||
title, |
||||
desc, |
||||
moreInfo, |
||||
buttonGroup |
||||
] |
||||
}); |
||||
|
||||
$(".container").css("background", "url(" + Pool.data.getBackgroundUrl() + ")"); |
||||
$(".button-ignore").css({ |
||||
"background-color": "white", |
||||
"border": "1px solid white" |
||||
}); |
||||
|
||||
|
||||
|
||||
// }, 2000); |
||||
|
||||
|
||||
|
||||
// setTimeout(function() { |
||||
// // alert(Pool.data); |
||||
// alert(Pool.data.getName() + " " + Pool.data.getAge()); |
||||
// }, 2000); |
||||
|
||||
// Pool.update = function () { |
||||
// Pool.data.setAge(12); |
||||
// Pool.data.setName("Tom"); |
||||
// return Pool.data; |
||||
// }; |
||||
}); |
||||
|
||||
</script> |
||||
</body> |
||||
</html> |
@ -0,0 +1,23 @@
|
||||
package com.fr.design.onlineupdate.push; |
||||
|
||||
import com.fr.design.DesignerEnvManager; |
||||
import com.fr.json.JSONObject; |
||||
|
||||
/** |
||||
* Created by plough on 2019/4/10. |
||||
*/ |
||||
public class DesignerPushUpdateDialogTest { |
||||
|
||||
public static void main(String[] args) { |
||||
DesignerEnvManager.getEnvManager().setOpenDebug(true); |
||||
|
||||
JSONObject jo = JSONObject.create(); |
||||
jo.put("version", "2019.03.06.04.02.43.6"); |
||||
jo.put("content", "test content"); |
||||
jo.put("more", "http://baidu.com"); |
||||
jo.put("background", "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1555043827901&di=fc266992abef5a7e13b4e0cb98975a75&imgtype=0&src=http%3A%2F%2Fi5.3conline.com%2Fimages%2Fpiclib%2F201203%2F20%2Fbatch%2F1%2F130280%2F1332249463721rez0li5fg0_medium.jpg"); |
||||
DesignerUpdateInfo mockUpdateInfo = new DesignerUpdateInfo("111.22.11", "2211.231.1", "11.23.1", jo); |
||||
|
||||
DesignerPushUpdateDialog.createAndShow(null, mockUpdateInfo); |
||||
} |
||||
} |
Loading…
Reference in new issue