美文网首页
NC一些类

NC一些类

作者: feiyingmm | 来源:发表于2017-10-31 11:36 被阅读0次

    登录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定时任务
    • 必须实现这个接口,然后需要在页面上配置:nc.bs.pub.taskcenter.IBackgroundWorkPlugin

    相关文章

      网友评论

          本文标题:NC一些类

          本文链接:https://www.haomeiwen.com/subject/foovpxtx.html