Hi there, @gzmorgan0,
Yes, it is possible. Some of these annotation messages were added very recently to help with our testing frameworks, I apologize if they have not been properly documented. I will make sure to look into that.
Please see the script below. It shows how to get the annotation (which in this case is a pinned hover label) content as both a single text paragraph (using Copy) and as data in the form of an associative array (using Get Local Context). As you can see, the hover label context data includes more than just the visible hover label entries and is heavily used by Graphlet Presets. I believe power users will be able to take advantage of them to create some really interesting, interactive JMP applications. For more information on what type of data is available, check:
https://www.jmp.com/support/help/en/15.2/index.shtml#page/jmp/work-with-the-hover-label-execution-co...
Names Default to Here(1);
dt = Open( "$Sample_Data/Analgesics.jmp" );
gb = dt << Graph Builder(
Size( 528, 448 ),
Show Control Panel( 0 ),
Variables( X( :drug ), Y( :pain ) ),
Elements( Points( X, Y, Legend( 5 ) ), Box Plot( X, Y, Legend( 6 ) ) ),
SendToReport(
Dispatch(
{},
"Graph Builder",
FrameBox,
Add Pin Annotation(
Seg( Box Plot Seg( 2 ) ),
Index( {1, 1} ),
Index Row( {1, 1} ),
UniqueID( 568563361 ),
FoundPt( {321, 356} ),
Origin( {1.14256198347107, 3.97321428571429} )
)
)
)
);
frame = (gb << Report)[FrameBox(1)];
gpin = frame << Get Annotation();
pinText = gpin << Copy();
Show(pinText);
hlec = gpin << Get Local Context();
Show(hlec);
Log results:
pinText = "
Maximum, excluding outliers: 16.636
75%: 12.93
50%: 9.418
25%: 7.84
Minimum, excluding outliers: 3.838
drug: B
N: 7";
hlec = ["_25%" => 7.84,
"_50%" => 9.418,
"_75%" => 12.93,
"_dataTable" => Data Table( "Analgesics" ),
"_displaySegName" => "BoxPlotSeg",
"_drillDepth" => 1,
"_drug" => "B",
"_filters" => {:pain, :drug},
"_firstRow" => -1,
"_groupings" => {:pain, :drug},
"_Maximum, excluding outliers" => 16.636,
"_measurements" => {},
"_Minimum, excluding outliers" => 3.838,
"_mode" => "Test",
"_N" => 7,
"_pain" => {7.84, 12.93},
"_summaryStatistic" => "",
"_underlyingRows" => 7,
"_where" => ":pain >= 7.84 & :pain < 12.93 & :drug == \!"B\!"",
"_whereExpr" => Expr(
:pain >= 7.84 & :pain < 12.93 & :drug == "B"
)];