Пример #1
0
        void BuildComponents(
            PlasticGUIClient plasticClient,
            EditorWindow plasticWindow)
        {
            mHelpPanel = new HelpPanel(plasticWindow);

            mAdvancedDropdownMenu = new GenericMenu();
            mAdvancedDropdownMenu.AddItem(new GUIContent(
                                              PlasticLocalization.GetString(PlasticLocalization.Name.UndoUnchangedButton)),
                                          false, () => { });

            mSearchField = new SearchField();
            mSearchField.downOrUpArrowKeyPressed += SearchField_OnDownOrUpArrowKeyPressed;

            PendingChangesTreeHeaderState headerState = PendingChangesTreeHeaderState.Default;

            TreeHeaderSettings.Load(headerState,
                                    UnityConstants.PENDING_CHANGES_TABLE_SETTINGS_NAME,
                                    (int)PendingChangesTreeColumn.Item, true);

            mPendingChangesTreeView = new PendingChangesTreeView(
                mWkInfo, headerState,
                PendingChangesTreeHeaderState.GetColumnNames(),
                new PendingChangesViewMenu(this, this, this));
            mPendingChangesTreeView.Reload();

            mMergeLinksListView = new MergeLinksListView();
            mMergeLinksListView.Reload();
        }
Пример #2
0
        internal PendingChangesTreeView(
            WorkspaceInfo wkInfo,
            PendingChangesTreeHeaderState headerState,
            List <string> columnNames,
            PendingChangesViewMenu menu)
            : base(new TreeViewState())
        {
            mWkInfo      = wkInfo;
            mColumnNames = columnNames;
            mMenu        = menu;

            mPendingChangesTree = new UnityPendingChangesTree();

            multiColumnHeader = new PendingChangesMultiColumnHeader(
                headerState, mPendingChangesTree);
            multiColumnHeader.canSort         = true;
            multiColumnHeader.sortingChanged += SortingChanged;

            customFoldoutYOffset          = UnityConstants.TREEVIEW_FOLDOUT_Y_OFFSET;
            rowHeight                     = UnityConstants.TREEVIEW_ROW_HEIGHT;
            showAlternatingRowBackgrounds = true;

            mCooldownFilterAction = new CooldownWindowDelayer(
                DelayedSearchChanged, UnityConstants.SEARCH_DELAYED_INPUT_ACTION_INTERVAL);
        }
Пример #3
0
        internal PendingChangesTreeView(
            WorkspaceInfo wkInfo,
            PendingChangesTreeHeaderState headerState,
            PendingChangesViewMenu menu)
            : base(new TreeViewState())
        {
            mWkInfo             = wkInfo;
            mMenu               = menu;
            mPendingChangesTree = new UnityPendingChangesTree();

            mColumnNames = new List <string>();
            mColumnNames.Add(PlasticLocalization.GetString(PlasticLocalization.Name.ItemColumn));
            mColumnNames.Add(PlasticLocalization.GetString(PlasticLocalization.Name.StatusColumn));
            mColumnNames.Add(PlasticLocalization.GetString(PlasticLocalization.Name.SizeColumn));
            mColumnNames.Add(PlasticLocalization.GetString(PlasticLocalization.Name.ExtensionColumn));
            mColumnNames.Add(PlasticLocalization.GetString(PlasticLocalization.Name.TypeColumn));
            mColumnNames.Add(PlasticLocalization.GetString(PlasticLocalization.Name.DateModifiedColumn));
            mColumnNames.Add(PlasticLocalization.GetString(PlasticLocalization.Name.RepositoryColumn));

            multiColumnHeader = new PendingChangesMultiColumnHeader(
                headerState, mPendingChangesTree);
            multiColumnHeader.canSort         = true;
            multiColumnHeader.sortingChanged += SortingChanged;

            customFoldoutYOffset          = UnityConstants.TREEVIEW_FOLDOUT_Y_OFFSET;
            rowHeight                     = UnityConstants.TREEVIEW_ROW_HEIGHT;
            showAlternatingRowBackgrounds = true;

            mCooldownFilterAction = new CooldownWindowDelayer(DelayedSearchChanged, 0.25);
        }
Пример #4
0
        static void ChangeTreeViewItemCellGUI(
            Rect rect,
            float rowHeight,
            PendingChangesTreeView treeView,
            UnityPendingChangesTree pendingChangesTree,
            ChangeTreeViewItem item,
            PendingChangesTreeColumn column,
            bool isSelected,
            bool isFocused)
        {
            PendingChangeInfo changeInfo = item.ChangeInfo;

            string label = changeInfo.GetColumnText(
                PendingChangesTreeHeaderState.GetColumnName(column));

            if (column == PendingChangesTreeColumn.Item)
            {
                if (pendingChangesTree.HasMeta(changeInfo.ChangeInfo))
                {
                    label = string.Concat(label, UnityConstants.TREEVIEW_META_LABEL);
                }

                Texture             icon            = GetIcon(changeInfo);
                GetOverlayIcon.Data overlayIconData =
                    GetOverlayIcon.ForChange(changeInfo.ChangeInfo);

                bool wasChecked = changeInfo.IsChecked();

                bool isChecked = DrawTreeViewItem.ForCheckableItemCell(
                    rect, rowHeight, item.depth,
                    icon, overlayIconData, label,
                    isSelected, isFocused, false,
                    wasChecked);

                changeInfo.UpdateCheckedState(isChecked);

                if (wasChecked != isChecked)
                {
                    UpdateCheckStateForSelection(treeView, item);
                }

                return;
            }

            if (column == PendingChangesTreeColumn.Size)
            {
                DefaultGUI.LabelRightAligned(rect, label, isSelected, isFocused);
                return;
            }

            DefaultGUI.Label(rect, label, isSelected, isFocused);
        }