wiki:AttributeUsage

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

--

The CrypTool Attributes

Note: 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)]