NC一些类

2017-10-31  本文已影响0人  feiyingmm

登录UI类

这个类就是NC的界面的窗口类(有启动动画图): nc.starter.ui.AppletViewer.initialize()
NC启动类: nc.starter.ui.NCLauncher.startNC(String, String, String)
开发调试启动类: nc.starter.test.JStarter.main(String[])

nc.login.ui.LoginUI  , 登录涉及到的类在 nc.login.ui 这个包下面
nc.login.ui.StandardLoginUI.initialize()
nc.login.ui.StandardLoginUI.initUI()

nc.login.bs.INCLoginService

配置文件解析: nc.login.ui.LoginUIConfig.parseDataToDocument(byte[])

登录按钮: nc.login.ui.StandardLoginUI.initialize().new LoginUISupport() {...}.(Container)

后台:
登录: nc.login.bs.impl.NCLoginImplement.login(LoginRequest, boolean)
查询人员: nc.login.bs.impl.NCUserQueryImple
密码校验: nc.identityverify.pub.StaticPWDVerifier.verify(AuthenSubject, UserVO)
校验密码是否匹配: nc.vo.uap.rbac.util.RbacUserPwdUtil.checkUserPassword(UserVO, String)
校验密码安全度: 
nc.impl.uap.rbac.userpassword.UserPasswordCheckerImpl.getPwdCheckMsg(UserVO, PasswordSecurityLevelVO, String)
nc.login.identify.ui.StaticPWDVerifySuccessClient.checkPWDLevel(Map<String, String>)

功能注册

这样搜索有惊喜哦 :  *FuncRegister
nc.impl.uap.bbd.func.FuncRegisterImpl

打开节点

nc.desktop.ui.ProductNavigatePanel.openNode(TreePath)
    nc.ui.uap.sf.SFClientUtil.open(Component, FuncRegisterVO, int, String)

nc.funcnode.ui.FuncletWindowLauncher.openFuncNodeInTabbedPane(Component, FuncRegisterVO, FuncletInitData, FuncletLinkListener, boolean, String)

-nc.funcnode.ui.FuncletWindowEngine.openNode(OpenParam)
    //上面方法另启动一个线程执行下面的
    -nc.funcnode.ui.FuncletWindowEngine.openNodeImple(OpenParam)
        -nc.funcnode.ui.FuncletWidgetContainerFactory.createFuncletWidgetContainer(FuncRegisterVO, FuncletModel, FuncletInitData, FuncletLinkListener, FuncletListener)
            -nc.funcnode.ui.FuncletWidgetContainer.initUI(FuncletModel, FuncletInitData)
                //这个方法里面初始化了IFunclet(功能类实例),它里面调用的init方法由AbstractFunclet实现
                -nc.funcnode.ui.FuncletWidgetFactory.createFuncletWidget(FuncRegisterVO, FuncletModel, FuncletInitData)
                    //由功能类实例(继承AbstractFunclet->IFunclet)执行init,AbstractFunclet有个抽象init(),由具体的功能类实现,在这里调用
                    -nc.funcnode.ui.AbstractFunclet.init(FuncletContext) 
                        -这里会调用具体功能类的init()方法
                    -这里执行执行createFuncletWidget方法,初始化数据,并把funclet加入到widget
                -这里在FuncletWidgetContainer.initUI中把widget加入到widgetcontainer
        -返回WfContainer
        //这里new 一个FuncNodePanel,返回window
        -nc.funcnode.ui.FuncNodePanel.initialize()
            //把该panel加入到打开的窗口集合
            -nc.desktop.ui.WorkbenchEnvironment.addOpenedFuncletWindow(IFuncletWindow)
         -展现window

参照

nc.ui.pub.beans.UIRefPane.showModel()
nc.ui.bd.ref.AbstractRefModel.getData()
点击确认按钮:
    - nc.ui.pub.beans.UIRefPane.onButtonClicked()
    - nc.ui.bd.ref.UFRefManage.doReturnOK()
事件触发:
    - 一般在列表或卡片视图类的handler方法,实现的nc.ui.uif2.AppEventListener接口

修改列表表头

BillItem bi = getBillCardPanel().getBodyItem("desdocvalue");
IType typeByID = MDBaseQueryFacade.getInstance().getTypeByID(desdocid, 300);
bi.setMetaDataProperty(new MetaDataUserDefAttributeAdpter(bi.getMetaDataProperty().getAttribute(), typeByID));
bi.setName(typeByID.getDisplayName());

事件

- 有些配置文件会配置(这个在UI2中加载配置文件时,判断以mediator结尾会加载):
<bean id="eventMediator" class="nc.ui.pubapp.uif2app.model.AppEventHandlerMediator">
- 一般页面中的事件都会在列表或卡片页面类的父类的handler方法,实现的nc.ui.uif2.AppEventListener接口

弹框显示

MessageDialog.showHintDlg(null, "提示", "abc!");

状态栏显示

ShowStatusBarMsgUtil.showStatusBarMsg("msg", model.getContext());
nc.funcnode.ui.AbstractFunclet.showStatusBarMessage(String)

//自己加的一个
ShowStatusMsg.showStatusBarMessage("", context);
nc.message.reconstruction.NCMessageQueryPanel.fireQuery(MsgQueryInfo)

树的构造

nc.ui.uif2.model.HierachicalDataAppModel.initModel(Object)
if(objs==null||objs.length==0){
    setTree(new DefaultTreeModel(treeCreateStrategy.getRootNode()));
}else{
    setTree(BDTreeCreator.createTree(objs, treeCreateStrategy));
}
NC定时任务
上一篇下一篇

猜你喜欢

热点阅读