Exemplo n.º 1
0
    /// <summary>显示蛋白质</summary>
    public void ShowProtein()
    {
        ProteinDisplayModel model       = GetModel <ProteinDisplayModel>();
        Protein             protein     = CoreAPI.PostCommand <PdbLoaderModule, GetProteinDataCommand, Protein>(new GetProteinDataCommand());
        DisplayMode         displayMode = CoreAPI.PostCommand <MainConsoleModule, GetDisplayModeCommand, DisplayMode>(new GetDisplayModeCommand());

        //若蛋白质数据还未加载 则直接返回
        if (protein == null)
        {
            return;
        }
        //若当前ProteinData与DisplayMode均是最新则直接返回,否则销毁重新Create
        if (model.DisplayedProteinData != null && model.DisplayedProteinData.ID == protein.ID && model.DisplayedDisplayMode == displayMode)
        {
            return;
        }
        else
        {
            DestroyProtein();
        }
        model.DisplayedProteinData = protein;
        model.DisplayedDisplayMode = displayMode;
        ProteinDisplayView view = GetView <ProteinDisplayView>();

        view.CreateProtein(protein, displayMode);
    }
Exemplo n.º 2
0
    public void SetPolymerInfoDisplayerActive(bool active)
    {
        ProteinDisplayView  view  = GetView <ProteinDisplayView>();
        ProteinDisplayModel model = GetModel <ProteinDisplayModel>();

        if (model.DisplayedProteinData == null)
        {
            view.SetBoardActive(false);
            return;
        }
        view.SetBoardActive(active);
    }
    public void OnStickToggleChanged(bool value)
    {
        if (value == false)
        {
            return;
        }
        ProteinDisplayModel model   = GetModel <ProteinDisplayModel>();
        ProteinDisplayView  view    = GetView <ProteinDisplayView>();
        Protein             protein = model.DisplayedProteinData;

        view.displayMode = DisplayMode.Stick;
        DestroyProtein();
        ResetScale();
        view.ShowProtein(protein);
    }
    /// <summary>显示蛋白质</summary>
    public void ShowProtein()
    {
        ProteinDisplayModel model   = GetModel <ProteinDisplayModel>();
        Protein             protein = CoreAPI.PostCommand <PdbLoaderModule, GetProteinDataCommand, Protein>(new GetProteinDataCommand());

        if (model.DisplayedProteinData != null)
        {
            if (model.DisplayedProteinData.ID == protein.ID)
            {
                return;
            }
            else
            {
                DestroyProtein();
            }
        }
        model.DisplayedProteinData = protein;
        ProteinDisplayView view = GetView <ProteinDisplayView>();

        view.ShowProtein(protein);
    }
Exemplo n.º 5
0
    public void SetSelectedDisplayer(IDisplayerSelected displayer)
    {
        ProteinDisplayModel model = GetModel <ProteinDisplayModel>();
        ProteinDisplayView  view  = GetView <ProteinDisplayView>();

        //若是同一个displayer则跳过
        if (model.SelectedDisplayer != null && model.SelectedDisplayer == displayer)
        {
            return;
        }
        //取消上一个Displayer的选中状态
        if (model.SelectedDisplayer != null)
        {
            model.SelectedDisplayer.OnUnSelected();
        }
        model.SelectedDisplayer = displayer;
        //设置当前选中的Displayer的选中状态
        displayer.OnSelected();
        //更新BoardInfo
        if (displayer is AtomDisplayer)
        {
            view.SetBoardInfo(displayer as AtomDisplayer);
        }
        else if (displayer is AminoacidDisplayer)
        {
            view.SetBoardInfo(displayer as AminoacidDisplayer);
        }
        else if (displayer is ChainDisplayer)
        {
            view.SetBoardInfo(displayer as ChainDisplayer);
        }
        else
        {
            throw new System.Exception();
        }
    }
Exemplo n.º 6
0
    public IDisplayerSelected GetSelectedDisplayer()
    {
        ProteinDisplayModel model = GetModel <ProteinDisplayModel>();

        return(model.SelectedDisplayer);
    }