Exemplo n.º 1
0
        private void RefreshConfigs()
        {
            checkerFileInfos = CheckerUtility.ReadCheckerFileInfos();

            selectedCheckerFileInfo = null;
            checkerDrawer           = null;

            if (configListView != null)
            {
                configListView.Clear();
            }
            else
            {
                configListView = new EasyListView();
                configListView.HeaderContent    = "Checker File List";
                configListView.OnSelectedChange = (selected) =>
                {
                    SetSelected((CheckerFileInfo)selected);
                };
            }
            foreach (var cfi in checkerFileInfos)
            {
                configListView.AddItem(Path.GetFileNameWithoutExtension(cfi.filePath), cfi);
            }
        }
Exemplo n.º 2
0
 private void SetSelected(CheckerFileInfo fileInfo)
 {
     selectedCheckerFileInfo = fileInfo;
     checkerDrawer           = null;
     if (selectedCheckerFileInfo != null)
     {
         checkerDrawer              = new ObjectDrawer(selectedCheckerFileInfo.checker);
         checkerDrawer.IsShowBox    = true;
         checkerDrawer.IsShowScroll = true;
     }
 }
Exemplo n.º 3
0
        static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths)
        {
            List <CheckerFileInfo> checkerFiles = CheckerUtility.ReadCheckerFileInfos();
            CheckerResultInfo      resultInfo   = CheckerUtility.ReadCheckerResultInfo();

            if (importedAssets != null && importedAssets.Length > 0)
            {
                foreach (var assetPath in importedAssets)
                {
                    if (AssetDatabase.IsValidFolder(assetPath) && !CheckerUtility.ReadSetting().isFolderAsAsset)
                    {
                        continue;
                    }

                    CheckerFileInfo cfi = checkerFiles.FirstOrDefault((cFileInfo) =>
                    {
                        return(cFileInfo.checker.enable && cFileInfo.checker.IsMatch(assetPath));
                    });

                    if (cfi == null)
                    {
                        resultInfo.AddPassedResult(assetPath);
                    }
                    else
                    {
                        Checker checker   = cfi.checker;
                        int     errorCode = 0;
                        if (checker.DoAnalyse(assetPath, ref errorCode))
                        {
                            checker.DoOperate(assetPath);

                            resultInfo.RemoveAsset(assetPath);
                        }
                        else
                        {
                            resultInfo.AddFailedResult(assetPath, errorCode);
                        }
                    }
                }
            }

            if (deletedAssets != null && deletedAssets.Length > 0)
            {
                foreach (var assetPath in deletedAssets)
                {
                    resultInfo.RemoveAsset(assetPath);
                }
            }

            CheckerUtility.SaveCheckerResultInfo();
        }
Exemplo n.º 4
0
        public static void SaveCheckerFileInfo(CheckerFileInfo checkerFileInfo)
        {
            WriteAsJson <Checker>(checkerFileInfo.filePath, checkerFileInfo.checker);

            CheckerFileInfo cachedCFI = checkerFileInfos.FirstOrDefault((cfi) =>
            {
                return(cfi.filePath == checkerFileInfo.filePath);
            });

            if (cachedCFI != null)
            {
                checkerFileInfos.Remove(cachedCFI);
            }
            checkerFileInfos.Add(checkerFileInfo);
        }
Exemplo n.º 5
0
        private void DrawToolbar()
        {
            if (toolbarDrawer == null)
            {
                toolbarDrawer = new ToolbarDrawer()
                {
                    LeftDrawable = new HorizontalLayoutDrawer
                                   (
                        new ToolbarButtonDrawer()
                    {
                        Text      = Contents.refreshContent,
                        OnClicked = () =>
                        {
                            RefreshConfigs();
                            Repaint();
                        }
                    },
                        new ToolbarButtonDrawer()
                    {
                        Text      = Contents.createContent,
                        OnClicked = () =>
                        {
                            string filePath = EditorUtility.SaveFilePanel("Save", CheckerUtility.CHECKER_CONFIG_DIR, "asset_checker", "json");
                            if (!string.IsNullOrEmpty(filePath))
                            {
                                filePath            = filePath.Replace("\\", "/");
                                CheckerFileInfo cfi = new CheckerFileInfo()
                                {
                                    filePath = filePath,
                                    checker  = new Checker(),
                                };

                                CheckerUtility.SaveCheckerFileInfo(cfi);
                                RefreshConfigs();

                                configListView.SelectedItem = cfi;
                                SetSelected(cfi);

                                Repaint();
                            }
                        }
                    },
                        new ToolbarButtonDrawer()
                    {
                        Text      = Contents.saveContent,
                        OnClicked = () =>
                        {
                            SaveSelectedCheckerFile();
                        },
                    },
                        new ToolbarButtonDrawer()
                    {
                        Text      = Contents.deleteContent,
                        OnClicked = () =>
                        {
                            if (selectedCheckerFileInfo != null)
                            {
                                CheckerUtility.DeleteCheckerFileInfo(selectedCheckerFileInfo);
                            }
                            RefreshConfigs();
                            Repaint();
                        }
                    }
                                   ),
                    RightDrawable = new HorizontalLayoutDrawer
                                    (
                        new ToolbarToggleDrawer()
                    {
                        Text           = Contents.autoSaveContent,
                        LabelWidth     = 60.0f,
                        Value          = isAutoSave,
                        OnValueChanged = (result) =>
                        {
                            isAutoSave = result;
                        }
                    },
                        new PopupDrawer <int>()
                    {
                        Width      = 60,
                        EnableFunc = () =>
                        {
                            return(isAutoSave);
                        },
                        Contents       = saveIntervalContents,
                        Values         = saveIntervalValues,
                        Value          = saveInterval,
                        OnValueChanged = (value) =>
                        {
                            saveInterval = value;
                        }
                    }, new ToolbarButtonDrawer()
                    {
                        Text      = Contents.settingContent,
                        OnClicked = () =>
                        {
                            var pos = GUIUtility.GUIToScreenPoint(Event.current.mousePosition);
                            CheckerSettingPopupContent.ShowWin(pos);
                        }
                    }
                                    ),
                };
            }
            toolbarDrawer.OnGUILayout();
        }
Exemplo n.º 6
0
 public static void DeleteCheckerFileInfo(CheckerFileInfo cfi)
 {
     checkerFileInfos.Remove(cfi);
     File.Delete(cfi.filePath);
 }