richie
6 years ago
9 changed files with 238 additions and 6 deletions
@ -0,0 +1,63 @@ |
|||||||
|
package com.fr.design.upm; |
||||||
|
|
||||||
|
import com.fr.base.FRContext; |
||||||
|
import com.fr.design.dialog.UIDialog; |
||||||
|
import com.fr.design.mainframe.DesignerContext; |
||||||
|
import com.fr.event.Event; |
||||||
|
import com.fr.event.EventDispatcher; |
||||||
|
import com.fr.event.Listener; |
||||||
|
import com.fr.stable.StableUtils; |
||||||
|
import com.fr.workspace.Workspace; |
||||||
|
import com.fr.workspace.WorkspaceEvent; |
||||||
|
|
||||||
|
import javax.swing.*; |
||||||
|
import java.io.File; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author richie |
||||||
|
* @version 10.0 |
||||||
|
* Created by richie on 2019-04-12 |
||||||
|
*/ |
||||||
|
public class UPM { |
||||||
|
|
||||||
|
private static final String MAIN_RESOURCE_PATH = "/upm/plugin.html"; |
||||||
|
|
||||||
|
public static String installHome = FRContext.getCommonOperator().getWebRootPath(); |
||||||
|
|
||||||
|
private static UIDialog dialog = null; |
||||||
|
|
||||||
|
static { |
||||||
|
EventDispatcher.listen(WorkspaceEvent.AfterSwitch, new Listener<Workspace>() { |
||||||
|
@Override |
||||||
|
public void on(Event event, Workspace param) { |
||||||
|
installHome = FRContext.getCommonOperator().getWebRootPath(); |
||||||
|
} |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
public static boolean checkUPMResourcesExist() { |
||||||
|
String mainJsPath = StableUtils.pathJoin(installHome, MAIN_RESOURCE_PATH); |
||||||
|
File file = new File(mainJsPath); |
||||||
|
return file.exists(); |
||||||
|
} |
||||||
|
|
||||||
|
public static String getMainResourcePath() { |
||||||
|
return "file:///" + StableUtils.pathJoin(installHome, MAIN_RESOURCE_PATH); |
||||||
|
} |
||||||
|
|
||||||
|
public static void showUPMDialog() { |
||||||
|
UPMPane upmPane = new UPMPane(); |
||||||
|
if (dialog == null) { |
||||||
|
dialog = new UPMDialog(DesignerContext.getDesignerFrame(), upmPane); |
||||||
|
} |
||||||
|
dialog.setVisible(true); |
||||||
|
} |
||||||
|
|
||||||
|
public static void closeWindow() { |
||||||
|
if (dialog != null) { |
||||||
|
dialog.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); |
||||||
|
dialog.setVisible(false); |
||||||
|
dialog = null; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,31 @@ |
|||||||
|
package com.fr.design.upm; |
||||||
|
|
||||||
|
import com.fr.design.upm.event.DownloadEvent; |
||||||
|
import com.fr.event.EventDispatcher; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author richie |
||||||
|
* @version 10.0 |
||||||
|
* Created by richie on 2019-04-12 |
||||||
|
* 桥接Java和JavaScript的类 |
||||||
|
*/ |
||||||
|
public class UPMBridge { |
||||||
|
|
||||||
|
private static UPMBridge bridge = new UPMBridge(); |
||||||
|
|
||||||
|
public static UPMBridge getBridge() { |
||||||
|
return bridge; |
||||||
|
} |
||||||
|
|
||||||
|
public void startDownload() { |
||||||
|
// do something.....
|
||||||
|
EventDispatcher.fire(DownloadEvent.FINISH, "start"); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public void closeWindow() { |
||||||
|
UPM.closeWindow(); |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,34 @@ |
|||||||
|
package com.fr.design.upm; |
||||||
|
|
||||||
|
import com.fr.design.dialog.BasicPane; |
||||||
|
import com.fr.design.dialog.UIDialog; |
||||||
|
import com.fr.design.utils.gui.GUICoreUtils; |
||||||
|
import com.fr.stable.StableUtils; |
||||||
|
|
||||||
|
import javax.swing.*; |
||||||
|
import java.awt.*; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author richie |
||||||
|
* @version 10.0 |
||||||
|
* Created by richie on 2019-04-12 |
||||||
|
*/ |
||||||
|
public class UPMDialog extends UIDialog { |
||||||
|
|
||||||
|
private static final Dimension DEFAULT_SHOP = new Dimension(900, 700); |
||||||
|
|
||||||
|
public UPMDialog(Frame frame, BasicPane pane) { |
||||||
|
super(frame); |
||||||
|
setUndecorated(true); |
||||||
|
JPanel panel = (JPanel) getContentPane(); |
||||||
|
panel.setLayout(new BorderLayout()); |
||||||
|
add(pane, BorderLayout.CENTER); |
||||||
|
setSize(DEFAULT_SHOP); |
||||||
|
GUICoreUtils.centerWindow(this); |
||||||
|
setResizable(false); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void checkValid() throws Exception { |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,33 @@ |
|||||||
|
package com.fr.design.upm; |
||||||
|
|
||||||
|
import com.fr.web.struct.AssembleComponent; |
||||||
|
import com.fr.web.struct.Atom; |
||||||
|
import com.fr.web.struct.browser.RequestClient; |
||||||
|
import com.fr.web.struct.category.ScriptPath; |
||||||
|
import com.fr.web.struct.impl.FineUI; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author richie |
||||||
|
* @version 10.0 |
||||||
|
* Created by richie on 2019-04-12 |
||||||
|
*/ |
||||||
|
public class WarnComponent extends AssembleComponent { |
||||||
|
|
||||||
|
public static final WarnComponent KEY = new WarnComponent(); |
||||||
|
|
||||||
|
private WarnComponent() { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public ScriptPath script(RequestClient req) { |
||||||
|
return ScriptPath.build("com/fr/design/upm/warn.js"); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Atom[] refer() { |
||||||
|
return new Atom[]{ |
||||||
|
FineUI.KEY |
||||||
|
}; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,13 @@ |
|||||||
|
package com.fr.design.upm.event; |
||||||
|
|
||||||
|
import com.fr.event.Event; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author richie |
||||||
|
* @version 10.0 |
||||||
|
* Created by richie on 2019-04-12 |
||||||
|
*/ |
||||||
|
public enum DownloadEvent implements Event<String> { |
||||||
|
|
||||||
|
FINISH |
||||||
|
} |
@ -0,0 +1,20 @@ |
|||||||
|
window.onload = function () { |
||||||
|
let button = BI.createWidget({ |
||||||
|
type : "bi.button", |
||||||
|
text : "点击我跳转到插件商店", |
||||||
|
level: 'common', |
||||||
|
height: 30, |
||||||
|
handler : function () { |
||||||
|
PluginBridgeTest.startDownload(); |
||||||
|
} |
||||||
|
}); |
||||||
|
BI.createWidget({ |
||||||
|
type:"bi.absolute", |
||||||
|
element: "body", |
||||||
|
items: [{ |
||||||
|
el: button, |
||||||
|
left: 100, |
||||||
|
top: 100 |
||||||
|
}] |
||||||
|
}); |
||||||
|
}; |
Loading…
Reference in new issue