User Tools

Site Tools


action:Switch_or_Case

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
action:Switch_or_Case [2016/06/21 23:25]
peternlewis
action:Switch_or_Case [2016/12/08 14:22]
JMichaelTX Clarified Switch Conditions
Line 1: Line 1:
-The //Switch or Case action// lets you read a string from the System Clipboard, from a Named Clipboard, from a variable, or from a file and then match it against various other strings to choose which set of actions to do.+{{:​action:​switch-icon.png?​nolink|}} 
 +====== ​Switch or Case Action ======
  
-The action ​contains ​sequence of conditional segments, each of which tests the source string and then conditionally executes the corresponding set of actions.+**The //Switch or Case action// is used to perform different actions based on different values of common _parameter_.** ​ It is very similar to the [[https://​developer.mozilla.org/​en-US/​docs/​Web/​JavaScript/​Reference/​Statements/​switch|JavaScript Switch]] statement.
  
-The condition can test the source and see if:+The _Switch_ Action is a good alternative to using multiple, nested, [[action:If_Then_Else|If/​Then]] Actions.
  
-* has text of some sort. +---- 
-does not have text. + 
-has an image of some sort+===== Parameters ===== 
-does not have an image. + 
-is exactly (case insensitively) a specified string. +**The Switch _parameter_ may be any of the following:​** 
-is not exactly (case insensitively) a specified string. +  * [[:​Clipboards|System Clipboard]] 
-is alphabetically before a specified string. (v7.2+) +  * [[:​Clipboards#​Named_Clipboards|Named Clipboard]] 
-is alphabetically after a specified string. (v7.2+) +  * [[:​Variables|Keyboard Maestro Variable]] 
-contains (case insensitively) a specified string. +  * Text (which can use [[:​Tokens|Tokens]]) 
-does not contain (case insensitively) a specified string. + 
-matches a specified regular expression. +---- 
-does not match a specified regular expression. + 
-has some flavor ​that conforms to the specified [Uniform Type Identifier](https://​en.wikipedia.org/​wiki/​Uniform_Type_Identifier). + 
-does not have a flavor ​that conforms to the specified Uniform Type Identifier. +===== Default Configuration ===== 
-otherwise ​(aka always).+ 
 +When you insert the _Switch_ Action, it is configured to switch based on the _System Clipboard_, but can be easily changed to other parameters. ​ It initially looks like this: 
 + 
 +{{:​action:​km-7.3-switch.png?​nolink|}} 
 + 
 +For each _Condition_ that you add, you can enter zero or more _Actions_ that will be executed when that _Condition_ is met.  After those _Action(s)_ are executed, or if no _Conditions_ are met, the _Switch_ Action is exited. 
 + 
 +---- 
 + 
 + 
 +===== Conditions ===== 
 + 
 +The _Conditions_ available depend on the _Parameter_ that is chosen: 
 +{{:​action:​km-7.3-switch-conditions.png?​nolink|}} 
 + 
 +The _Conditions_ are defined as follows: 
 + 
 +^Condition^Definition^ 
 +|has text |has text of some sort, i.e. it is _not_ empty.| 
 +|does not have text |does not have text, i.e., it _is_ empty.| 
 +|has image |has one or more images on the clipboard.| 
 +|does not have image |does not have any images on the clipboard.| 
 +|is |is exactly (case insensitive) a specified string.| 
 +|is not |is not exactly (case insensitive) a specified string.| 
 +|is before |is alphabetically before a specified string. (v7.2+)| 
 +|is after |is alphabetically after a specified string. (v7.2+)| 
 +|contains |contains (case insensitive) a specified string.| 
 +|does not contain |does not contain (case insensitive) a specified string.| 
 +|matches |matches a specified regular expression.| 
 +|does not match |does not match a specified regular expression.| 
 +|conforms to |Clipboard ​has an item with the UTI class that conforms to the specified [Uniform Type Identifier](https://​en.wikipedia.org/​wiki/​Uniform_Type_Identifier).| 
 +|does not conform to |Clipboard ​does not have an item with the UTI class that conforms to the specified Uniform Type Identifier.| 
 +|otherwise ​|will execute if none of the Conditions in the Switch, that are entered above _otherwise_,​ are met.| 
 + 
 + 
 +The _Otherwise_ _Condition_ will execute if none of the above _Conditions_ are met.  The _Switch_ Action will then exit.  So, the _Otherwise_ _Condition_ should ​always ​be placed as the last _Condition_ in the _Switch_ Action. 
 + 
 +----
  
-In all cases at most one sequence will execute, and the conditions are evaluated in order - the first one that matches will execute. So don't put an "​otherwise"​ clause in the middle of your switch statement. 
  
 ===== See Also ===== ===== See Also =====
action/Switch_or_Case.txt · Last modified: 2022/09/17 22:49 by peternlewis