123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.WindData = void 0;
- const FairyGUI = CS.FairyGUI;
- const FairyEditor = CS.FairyEditor;
- const App = FairyEditor.App;
- class WindData {
- packName;
- resName;
- url;
- constructor(pkg, res) {
- this.packName = pkg;
- this.resName = res;
- this.url = "ui://" + pkg + "/" + res;
- }
- }
- exports.WindData = WindData;
- class UIWindow extends CS.FairyGUI.Window {
- static mWinds = new Map();
- _windData;
- constructor(data) {
- super();
- if (data == null)
- return;
- this._windData = data;
- this.__onInit = () => { this.onInit(); };
- this.__onShown = () => { this.onShown(); };
- this.__onHide = (() => { this.onHide(); });
- }
- get windData() {
- return this._windData;
- }
- get url() {
- return this._windData.url;
- }
- static add(wind) {
- this.mWinds.set(wind.url, wind);
- }
- /**查看路径资源是否创建 */
- static FindUrl(url) {
- if (url == null)
- url = "";
- return this.mWinds.has(url) ? this.mWinds.get(url) : undefined;
- }
- /**界面是否正在被展示 */
- static isShow(url) {
- let wind = this.FindUrl(url);
- if (wind == undefined)
- return false;
- return wind ? wind.isShowing && wind["_inited"] == true : false;
- }
- /**
- * 实例化窗口资源 第一次创建时才会调用
- * @returns
- */
- onInit() {
- let self = this;
- App.consoleView.Log("创建组件:" + self.url);
- let windObj = FairyGUI.UIPackage.CreateObject(self.windData.packName, self.windData.resName);
- if (windObj == null) {
- App.consoleView.Log("创建窗口失败 url:" + self.url);
- return;
- }
- self.contentPane = windObj;
- this.Center();
- }
- onShown() {
- }
- onHide() {
- }
- //#region 界面显示
- /**
- * 打开面板
- * @param id 面板路径
- * @param param 需求参数
- */
- static show(id, param) {
- if (this.mWinds.has(id)) {
- let wind = this.mWinds.get(id);
- wind.data = param;
- if (wind.isShowing && wind.contentPane) {
- wind.onShown();
- }
- else {
- wind.Show();
- }
- }
- else {
- App.consoleView.Log("显示窗口失败没有注册窗口 id:" + id);
- }
- }
- //#endregion
- static hide(url, param) {
- if (this.mWinds.has(url)) {
- let wind = this.mWinds.get(url);
- if (wind.isShowing) {
- wind.data = param;
- wind.Hide();
- }
- }
- else {
- App.consoleView.Log("隐藏窗口失败没有注册窗口 id:" + url);
- }
- }
- static delAll(filter) {
- let needDel = new Array();
- this.mWinds.forEach((v, k) => {
- if (filter == null || filter.findIndex(a => a == v.url) == -1) {
- needDel.push(v.url);
- }
- });
- for (let i = 0; i < needDel.length; i++) {
- this.remove(this.mWinds.get(needDel[i]));
- }
- }
- static remove(wind) {
- if (this.mWinds.has(wind.url)) {
- this.mWinds.delete(wind.url);
- App.consoleView.Log("卸载窗口:" + wind.url);
- wind._windData = null;
- wind.RemoveFromParent();
- wind.contentPane.Dispose();
- wind.contentPane = null;
- wind.Dispose();
- wind = null;
- }
- }
- }
- exports.default = UIWindow;
|