private void PackageTree_BeforeCheck(object sender, TreeViewCancelEventArgs e) { if (!mbInitializing) { Mog_BaseTag basetag = e.Node.Tag as Mog_BaseTag; if (basetag != null) { if (basetag.PackageNodeType == PackageNodeTypes.Class) { MessageBox.Show(this, "Cannot select classification nodes."); e.Cancel = true; } else if (e.Node.NodeFont != null && e.Node.NodeFont.Italic) { MessageBox.Show(this, "This package assignment is being inherited from the classification and can't be unassigned.\n" + "You may override this inherited package assignemnt by selecting a different package.", "Can't remove this package assignment"); e.Cancel = true; } else if (IsSelectedAsset(basetag.PackageFullName)) { MessageBox.Show(this, "You cannot assign an asset to be packaged into itself."); e.Cancel = true; } } } }
private void FindAndUpdateNodeLockStatus(string nodeKey, MOG_Filename assetName, MogControl_BaseTreeView tree) { // Attempt to find this node in our tree TreeNode[] foundNodes = tree.Nodes.Find(nodeKey, true); if (foundNodes != null && foundNodes.Length > 0) { foreach (TreeNode node in foundNodes) { Mog_BaseTag tag = node.Tag as Mog_BaseTag; if (tag != null) { // Is this a sync target node if (tag.AttachedSyncTargetInfo != null) { // Update this assets status string assetRepositoryName = tag.FullFilename + "\\Files.Imported\\" + tag.AttachedSyncTargetInfo.FilenameOnly; node.ImageIndex = MogUtil_AssetIcons.GetBinaryLockedOrUnlockedIcon(assetName.GetAssetFullName(), assetRepositoryName); node.SelectedImageIndex = node.ImageIndex; } else { // Update this assets status node.ImageIndex = MogUtil_AssetIcons.GetAssetIconIndex(assetName.GetAssetFullName()); node.SelectedImageIndex = node.ImageIndex; } } } } }
/// <summary> /// Add an item that is a sub-list of items we already have /// </summary> /// <param name="tag"></param> /// <returns></returns> public ListViewItem ItemAdd(Mog_BaseTag tag) { ListViewItem item = tag.Owner as ListViewItem; if (item != null) { return(ListListView.Items.Add((ListViewItem)item.Clone())); } else { return(new ListViewItem()); } }
/// <summary> /// Adds an asset to our ListView and to our Asset's properties /// </summary> private void PackageTree_AfterCheck(object sender, TreeViewEventArgs e) { ArrayList packageToChange = new ArrayList(); Mog_BaseTag basetag = e.Node.Tag as Mog_BaseTag; if (basetag != null) { string packageFullname = basetag.PackageFullName; if (e.Node.Checked) { bool markAsInherited = e.Node.NodeFont != null && e.Node.NodeFont.Italic; bool setProperty = e.Action != TreeViewAction.Unknown; //This node just got checked, so lets add the links to all the assets AddPackageLinkToAssets(packageFullname, e.Node.ForeColor, markAsInherited, setProperty); } else { if (e.Node.ForeColor == Color.Gray) { e.Node.ForeColor = e.Node.TreeView.ForeColor; } //node got unchecked, take the packages assignments off the assets packageToChange.Add(CreatePackageAssignmentProperty(packageFullname)); ListViewItem item = FindAssignmentListItem(packageFullname); if (item != null) { item.Remove(); } RemovePackageLinkFromAssets(packageToChange); } if (!mbInitializing) { Initialize(); mDirty = true; } } }