internal IncomingChangesTreeView( WorkspaceInfo wkInfo, IncomingChangesTreeHeaderState headerState, IncomingChangesViewMenu menu, Action onCheckedNodeChanged) : base(new TreeViewState()) { mWkInfo = wkInfo; mMenu = menu; mOnCheckedNodeChanged = onCheckedNodeChanged; mColumnNames = new List <string>(); mColumnNames.Add(PlasticLocalization.GetString(PlasticLocalization.Name.PathColumn)); mColumnNames.Add(PlasticLocalization.GetString(PlasticLocalization.Name.LastEditedByColumn)); mColumnNames.Add(PlasticLocalization.GetString(PlasticLocalization.Name.SizeColumn)); mColumnNames.Add(PlasticLocalization.GetString(PlasticLocalization.Name.DateModifiedColumn)); multiColumnHeader = new MultiColumnHeader(headerState); multiColumnHeader.canSort = true; multiColumnHeader.sortingChanged += SortingChanged; customFoldoutYOffset = UnityConstants.TREEVIEW_FOLDOUT_Y_OFFSET; rowHeight = UnityConstants.TREEVIEW_ROW_HEIGHT; showAlternatingRowBackgrounds = true; }
void BuildComponents() { IncomingChangesTreeHeaderState incomingChangesHeaderState = IncomingChangesTreeHeaderState.Default; TreeHeaderSettings.Load(incomingChangesHeaderState, UnityConstants.GLUON_INCOMING_CHANGES_TABLE_SETTINGS_NAME, (int)IncomingChangesTreeColumn.Path, true); mIncomingChangesTreeView = new IncomingChangesTreeView( mWkInfo, incomingChangesHeaderState, IncomingChangesTreeHeaderState.GetColumnNames(), new IncomingChangesViewMenu(this, this), UpdateProcessMergesButtonText); mIncomingChangesTreeView.Reload(); ErrorsListHeaderState errorsListHeaderState = ErrorsListHeaderState.Default; TreeHeaderSettings.Load(errorsListHeaderState, UnityConstants.GLUON_INCOMING_ERRORS_TABLE_SETTINGS_NAME, UnityConstants.UNSORT_COLUMN_ID); mErrorsListView = new ErrorsListView(errorsListHeaderState); mErrorsListView.Reload(); }
static void IncomingChangeTreeViewItemCellGUI( string wkPath, Rect rect, float rowHeight, UnityIncomingChangesTree incomingChangesTree, IncomingChangesTreeView treeView, ChangeTreeViewItem item, Action onCheckedNodeChanged, IncomingChangesTreeColumn column, bool isSelected, bool isFocused, bool isCurrentConflict, bool isSolvedConflict) { IncomingChangeInfo incomingChange = item.ChangeInfo; string label = incomingChange.GetColumnText( IncomingChangesTreeHeaderState.GetHeaderContent(column)); if (column == IncomingChangesTreeColumn.Path) { if (incomingChangesTree.HasMeta(item.ChangeInfo)) { label = string.Concat(label, UnityConstants.TREEVIEW_META_LABEL); } Texture icon = GetIcon(wkPath, incomingChange); GetOverlayIcon.Data overlayIconData = GetOverlayData( incomingChange, isSolvedConflict); bool wasChecked = incomingChange.IsChecked(); bool isChecked = DrawTreeViewItem.ForCheckableItemCell( rect, rowHeight, item.depth, icon, overlayIconData, label, isSelected, isFocused, isCurrentConflict, wasChecked); incomingChange.UpdateCheckedState(isChecked); if (wasChecked != isChecked) { UpdateCheckStateForSelection(treeView, item); onCheckedNodeChanged(); } return; } if (column == IncomingChangesTreeColumn.Size) { DefaultGUI.LabelRightAligned(rect, label, isSelected, isFocused); return; } DefaultGUI.Label(rect, label, isSelected, isFocused); }
internal IncomingChangesTreeView( WorkspaceInfo wkInfo, IncomingChangesTreeHeaderState headerState, List <string> columnNames, IncomingChangesViewMenu menu, Action onCheckedNodeChanged) : base(new TreeViewState()) { mWkInfo = wkInfo; mColumnNames = columnNames; mMenu = menu; mOnCheckedNodeChanged = onCheckedNodeChanged; multiColumnHeader = new MultiColumnHeader(headerState); multiColumnHeader.canSort = true; multiColumnHeader.sortingChanged += SortingChanged; customFoldoutYOffset = UnityConstants.TREEVIEW_FOLDOUT_Y_OFFSET; rowHeight = UnityConstants.TREEVIEW_ROW_HEIGHT; showAlternatingRowBackgrounds = true; }