wiki:AttributeUsage

Version 6 (modified by Matthäus Wander, 12 years ago) (diff)

outdated note

The CrypTool Attributes

This information is outdated'''

Currently there are eight CrypTool specific attributes. Some are optional, some essential and some attributes are only used for editor plugins:

  • AuthorAttribute Optional. Can be used to provide some information about the plugin author.
  • ContextMenuAttribute: Optional. Can be used to display plugin settings in a context menu, too. And not only in the settings pane.
  • EditorSpecificPluginAttribute: Yes as you might guess, it's only used for editor plugins ;-)
  • PluginInfoAttribute: Essential. Must be used to describe different plugin properties. If not provided your plugin can't be used in CrypTool.
  • PropertyInfoAttribute: Essential for most plugins. Must be used if your plugin provides input or output data. If not
  • PropertySaveOrderAttribute: Optional. Can be used if the save order of your setting properties is essential.
  • RibbonBarAttribute: Only for editor plugins to display content in the ribbon bar.
  • TaskPaneAttribute: Essential. Must be used to mark your plugins settings properties in the settings class.

AuthorAttribute: Please do not enter dummy URLs or a faked email address. Skip this attribute completely or enter 'null' value in fields you don't want to give information.

[Author("Name Surname", "name.surname", "Institute", "URL")]

ContextMenuAttribute:

[ContextMenu("Cryptographic algorithm", "Select which symmetric cipher you want to use", 1, DisplayLevel.Beginner, ContextMenuControlType.ComboBox, null, "Advanced Encryption Standard (AES)", "Rijndael")]

EditorSpecificPluginAttribute: Just used as flag to mark editor internal plugins

[EditorSpecificPlugin]

PluginInfoAttribute:

  [PluginInfo(false, "Plugin Editor", "Graphical plugin editor for the CrypTool workspace", "AnotherEditor/DetailedDescription/Description.xaml", 
    "AnotherEditor/icon.png", 
    "AnotherEditor/Images/addWorkspace.png", 
    "AnotherEditor/Images/deleteWorkspace.png", 
    "AnotherEditor/Images/importSubWorkspace.png")]

PropertyInfoAttribute:

[PropertyInfo(Direction.Input, "Input", "Data to be encrypted or decrypted", "", true, false, DisplayLevel.Beginner, QuickWatchFormat.Hex, null)]

PropertySaveOrderAttribute: Save order is defined by the integer values provided for different settings properties

        [PropertySaveOrder(4)]
        [ContextMenu("Action", "Select the Algorithm action", 1, DisplayLevel.Beginner, ContextMenuControlType.ComboBox, new int[] { 1, 2 }, "Encrypt", "Decrypt")]
        [TaskPane("Action", "Select the Algorithm action", null, 1, false, DisplayLevel.Beginner, ControlType.ComboBox, new string[] { "Encrypt", "Decrypt" })]
        public int Action
        {...

        [PropertySaveOrder(5)]
        [TaskPane("Shift value (integer)", "Enter the number of letters to shift. For instance a value of 1 means that the plaintext character a gets mapped to the ciphertext character B, b to C and so on.", null, 2, false, DisplayLevel.Beginner, ControlType.NumericUpDown, ValidationType.RangeInteger, 0, 100)]        
        public int ShiftValue
        {...

RibbonBarAttribute:

[RibbonBar("Current workspace", "The current workspace.", "Workspaces", 11, false, DisplayLevel.Expert, ControlType.DynamicComboBox, "CollectionWorkspaces")]

TaskPaneAttribute:

[TaskPane("New tabs in extra tab group", "New tabs (presentation and description) will be opened parallel to the workspace tab.", "Miscellaneous", 0, false, DisplayLevel.Beginner, ControlType.CheckBox, "", null)]