/** * 该操作将从Factory彻底移除Graph,如需再次加入需要通过IOC配置重新导入数据 */ public void destroyFactory(SABaseGraphWorker graph) { removeGraphicsWorker(graph.getName()); //移除工厂关联 repeatObjects.Remove(graph.DisplayName); //从视图源删除 graphWorkers.Remove(graph); //从视图工人删除 graph.destroyDisplay(); //结束生命周期 }
/** * 注册一个图形工人到当前工厂。 * @param worker 要注册到当前工厂的图形工人实例。 * @return 注册成功则返回true,否则返回false。 */ public void registerGraphicsWorker(SABaseGraphWorker worker) { SAWorkers workers; if (!workersTreeList.ContainsKey(GRAPH_WORKER)) { workers = new SAWorkers(GRAPH_WORKER, this); workersTreeList.Add(GRAPH_WORKER, workers); } workers = workersTreeList[GRAPH_WORKER]; workers.registerWorker(worker);//添加图形工人到图形工人组 //worker.initialize(this); worker.onSrart(args); Dictionary <string, string> .Enumerator en = worker.handleActions.GetEnumerator(); while (en.MoveNext()) { addEventDispatcher(en.Current.Key, worker, "handleAction"); //addEventDispatcher(en.Current.Key, worker, en.Current.Value); } }
/** * 移除一个图形工人从当前工厂。 * @param worker 要从当前工厂移除的图形工人名称。 * @return 移除成功则返回true,否则返回false。 */ public bool removeGraphicsWorker(string workerName) { if (workersTreeList.ContainsKey(GRAPH_WORKER)) { SAWorkers workers = workersTreeList[GRAPH_WORKER]; SABaseGraphWorker worker = workers.removeWorker(workerName) as SABaseGraphWorker;//得到画板工人组 if (worker != null) { Dictionary <string, string> .Enumerator en = worker.handleActions.GetEnumerator(); while (en.MoveNext()) { removeEventDispatcher(en.Current.Key, worker, "handleAction"); //removeEventDispatcher(en.Current.Key, worker, en.Current.Value); } worker.onRemove(); worker.onDispose(); } return(true); } else { return(false); } }