Quintiq file version 2.0
|
#parent: CustomDrawComponentRoutingConfigurator/CustomDrawDataLayerOperation
|
Response OnDrawObject (
|
Operation object
|
) id:Response_CustomDrawComponentRoutingConfigurator_CustomDrawDataLayerOperation_OnDrawObject
|
{
|
#keys: '[124808.0.1222257144]'
|
Body:
|
[*
|
// Draw operation
|
imagesize := minvalue( region.Height(), region.Width() );
|
|
//Initialize borders
|
surface.Pen().Style( PenSpecification::StyleSolid() );
|
surface.Pen().Width( 1 )
|
surface.Pen().Color( ColorScheme.Outline() );
|
|
//Initialize filled colors
|
//It is safe to use color scheme as the routing config is not user / scenario specific
|
colorstart := ColorScheme.RoutingConfigurator_Operation1();
|
colorend := ColorScheme.RoutingConfigurator_Operation2();
|
|
// Set color to black if operation is being disabled
|
if( not object.IsEnabled() )
|
{
|
colorstart := ColorScheme.RoutingConfiguratorDisabled();
|
colorend := ColorScheme.RoutingConfiguratorDisabled();
|
}
|
|
surface.Brush().LinearGradient( region, colorstart, colorend, 0.0 );
|
surface.Fill( region );
|
|
surface.Image( region.Left(), region.Top(), imagesize, imagesize, object.Unit().IconName() + '(32)' );
|
surface.Rect( region.Left(), region.Top(), region.Width(), region.Height(), Color::Black() );
|
|
|
//Draw text
|
rcv := DataHolderRCView.Data();
|
surface.Font().Name( rcv.FontName() );
|
surface.Font().Size( rcv.FontSize() );
|
surface.TextColor( Color::Black() );
|
|
textformat := TextFormat::Construct( TextFormat::AlignCenter(), TextFormat::AlignMiddle() );
|
surface.Text( imagesize, 0, region.Width() - imagesize , region.Height(), text, textformat ); // Add offset for images
|
|
|
//draw input output drop here!
|
//guide to be drawn below the operation
|
routing := guard( object.RoutingStep().Routing(), null( Routing ) );
|
|
if( not isnull( routing ) and not routing.HasInputOrOutput() )
|
{
|
surface.Pen().Style( PenSpecification::StyleDotted() );
|
surface.Pen().Width( rcv.EdgeThickness() )
|
surface.Pen().Color( ColorScheme.RoutingConfigurator_DropHereHelp() );
|
surface.Brush().Color( ColorScheme.RoutingConfigurator_DropHereHelp() ); // to paint the solid arrowhead
|
|
surface.TextColor( ColorScheme.RoutingConfigurator_DropHereHelp() );
|
|
lblx := region.Left();
|
lbly := region.Height() + 20;
|
|
midh := [Number]( region.Height() / 2 );
|
midw := [Number]( region.Width() / 2 );
|
|
line := GraphicalLine::LineTo( midw, lbly, midw, midh );
|
line.ArrowToEnd( true ).ArrowPos( GraphicalLine::ArrowPosEnd() );
|
surface.Draw( line );
|
|
surface.Text( lblx, lbly, Translations::MP_Routing_DropHereIO() );
|
}
|
*]
|
CanBindMultiple: false
|
DefinitionID: 'Responsedef_CustomDrawDataLayer_OnDrawObject'
|
Precondition:
|
[*
|
return not isnull( DataHolderRCView.Data() );
|
*]
|
}
|