VirtualTreeLabelEditData IBranch.BeginLabelEdit(int row, int column, VirtualTreeLabelEditActivationStyles activationStyle)
 {
     if (column == (int)Columns.FormatString)
     {
         ReferenceModeKind kind = myReferenceModeKindsList[row];
         if (kind.ReferenceModeType != ReferenceModeType.General || kind.FormatString != "{1}")                             // Allow a repair, we didn't used to enforce this
         {
             return(VirtualTreeLabelEditData.Default);
         }
     }
     return(VirtualTreeLabelEditData.Invalid);
 }
                    /// <summary>
                    /// An IMS event to track the shape element added to the associated
                    /// diagram during this connect action.
                    /// </summary>
                    /// <param name="sender"></param>
                    /// <param name="e"></param>
                    private void ReferenceModeKindChangeEvent(object sender, ElementPropertyChangedEventArgs e)
                    {
                        ReferenceModeKind referenceModeKind = e.ModelElement as ReferenceModeKind;

                        if (referenceModeKind != null && referenceModeKind.Model == this.myModel)
                        {
                            if (myModify != null)
                            {
                                int row = this.FindReferenceModeKind(referenceModeKind);
                                myModify(this, BranchModificationEventArgs.DisplayDataChanged(new DisplayDataChangedData(VirtualTreeDisplayDataChanges.Text, this, row, (int)Columns.FormatString, 1)));
                            }
                        }
                    }
                    private int FindReferenceModeKind(ReferenceModeKind referenceModeKind)
                    {
                        for (int i = 0; i < myReferenceModeKindsList.Count; i++)
                        {
                            ReferenceModeKind kind = myReferenceModeKindsList[i];
                            if (kind == referenceModeKind)
                            {
                                return(i);
                            }
                        }

                        return(-1);
                    }
                    /// <summary>
                    /// An IMS event to track the shape element added to the associated
                    /// diagram during this connect action.
                    /// </summary>
                    /// <param name="sender"></param>
                    /// <param name="e"></param>
                    private void ReferenceModeKindChangeEvent(object sender, ElementPropertyChangedEventArgs e)
                    {
                        if (myModify != null)
                        {
                            ReferenceModeKind referenceModeKind = e.ModelElement as ReferenceModeKind;

                            if (referenceModeKind != null && !referenceModeKind.IsDeleted && referenceModeKind.Model == this.myModel)
                            {
                                foreach (ReferenceMode refMode in referenceModeKind.ReferenceModeCollection)
                                {
                                    CustomReferenceMode custRefMode = refMode as CustomReferenceMode;
                                    if (custRefMode != null)
                                    {
                                        int row = this.FindReferenceMode(custRefMode);
                                        myModify(this, BranchModificationEventArgs.DisplayDataChanged(new DisplayDataChangedData(VirtualTreeDisplayDataChanges.Text, this, row, (int)Columns.FormatString, 1)));
                                    }
                                }
                            }
                        }
                    }
Beispiel #5
0
        /// <summary>
        /// Returns a list of available reference mode kinds.
        /// </summary>
        /// <param name="context">ITypeDescriptorContext. Used to retrieve the selected instance</param>
        /// <param name="value">The current value</param>
        /// <returns>A list of candidates</returns>
        protected sealed override IList GetContentList(ITypeDescriptorContext context, object value)
        {
            ReferenceMode instance = (ReferenceMode)EditorUtility.ResolveContextInstance(context.Instance, true);
            ReadOnlyCollection <ReferenceModeKind> candidates = instance.Store.ElementDirectory.FindElements <ReferenceModeKind>();
            int candidatesCount = candidates.Count;

            if (candidatesCount > 1)
            {
                // Make sure we're sorted
                ReferenceModeKind[] kinds          = new ReferenceModeKind[candidatesCount];
                string[]            localizedNames = Utility.GetLocalizedEnumNames(typeof(ReferenceModeType), true);
                candidates.CopyTo(kinds, 0);
                Array.Sort <ReferenceModeKind>(
                    kinds,
                    delegate(ReferenceModeKind leftKind, ReferenceModeKind rightKind)
                {
                    return(string.Compare(localizedNames[(int)leftKind.ReferenceModeType], localizedNames[(int)rightKind.ReferenceModeType], true, CultureInfo.CurrentCulture));
                });
                return(kinds);
            }
            return(candidates);
        }
 private void ReferenceModeHasKindChangeEvent(object sender, RolePlayerChangedEventArgs e)
 {
     if (myModify != null)
     {
         ReferenceModeHasReferenceModeKind link = e.ElementLink as ReferenceModeHasReferenceModeKind;
         if (link != null)
         {
             ReferenceModeKind referenceModeKind = link.Kind;
             if (referenceModeKind.Model == this.myModel && !link.IsDeleted)
             {
                 foreach (ReferenceMode refMode in referenceModeKind.ReferenceModeCollection)
                 {
                     CustomReferenceMode custRefMode = refMode as CustomReferenceMode;
                     if (custRefMode != null)
                     {
                         int row = this.FindReferenceMode(custRefMode);
                         myModify(this, BranchModificationEventArgs.DisplayDataChanged(new DisplayDataChangedData(VirtualTreeDisplayDataChanges.Text, this, row, -1, 1)));
                     }
                 }
             }
         }
     }
 }
 /// <summary>
 /// Replaces the {0} and {1} with entityTypeName and referenceModeName
 /// </summary>
 /// <param name="kind">The <see cref="ReferenceMode"/> to format</param>
 private static string PrettyFormatString(ReferenceModeKind kind)
 {
     return(string.Format(kind.FormatString, ResourceStrings.ModelReferenceModeEditorEntityTypeName, ResourceStrings.ModelReferenceModeEditorReferenceModeName));
 }
				/// <summary>
				/// Replaces the {0} and {1} with entityTypeName and referenceModeName
				/// </summary>
				/// <param name="kind">The <see cref="ReferenceMode"/> to format</param>
				private static string PrettyFormatString(ReferenceModeKind kind)
				{
					return string.Format(kind.FormatString, ResourceStrings.ModelReferenceModeEditorEntityTypeName, ResourceStrings.ModelReferenceModeEditorReferenceModeName);
				}
					private int FindReferenceModeKind(ReferenceModeKind referenceModeKind)
					{
						for (int i = 0; i < myReferenceModeKindsList.Count; i++)
						{
							ReferenceModeKind kind = myReferenceModeKindsList[i];
							if (kind == referenceModeKind)
							{
								return i;
							}
						}

						return -1;
					}