145 'iShow' => { 'type' => 'attr[=val]', 'ordered' => 1,'param' => "show-attr=s", |
145 'iShow' => { 'type' => 'attr[=val]', 'ordered' => 1,'param' => "show-attr=s", |
146 'class' =>'Model Control', 'desc' => 'A mechanism of filtering which allows filtering based on component attribute values. If a value is set for that attribute, the component will be shown. Use in conjunction with -hide-attr for fine contol of what is shown. "class" and "filter" attribtues are handled specially -- see the documentation for details'}, |
146 'class' =>'Model Control', 'desc' => 'A mechanism of filtering which allows filtering based on component attribute values. If a value is set for that attribute, the component will be shown. Use in conjunction with -hide-attr for fine contol of what is shown. "class" and "filter" attribtues are handled specially -- see the documentation for details'}, |
147 'iHide' => { 'type' => 'attr[=val]', 'ordered' => 1,'param' => "hide-attr=s", |
147 'iHide' => { 'type' => 'attr[=val]', 'ordered' => 1,'param' => "hide-attr=s", |
148 'class' =>'Model Control', 'desc' => 'A mechanism of filtering which allows filtering based on component attribute values. If a value is set for that attribute, the component will not be shown on the model. Use in conjunction with -show-attr for fine contol of what is shown. "class" and "filter" attribtues are handled specially -- see the documentation for details'}, |
148 'class' =>'Model Control', 'desc' => 'A mechanism of filtering which allows filtering based on component attribute values. If a value is set for that attribute, the component will not be shown on the model. Use in conjunction with -show-attr for fine contol of what is shown. "class" and "filter" attribtues are handled specially -- see the documentation for details'}, |
149 'iIgnore' => { 'type' => 'item', 'multi' => 1, 'param' => "ignore=s", 'xpath' => '/model/ignore', |
149 'iIgnore' => { 'type' => 'item', 'multi' => 1, 'param' => "ignore=s", 'xpath' => '/model/ignore', |
150 'class' =>'Model Control', 'desc' => 'A model entity to not draw, in the form "[item-type]:[item-name]". Any number of these can be used. Defaults to "layer:Tools and Utils and SDKENG" ,"layer:MISC", "block:Techview"'}, |
150 'class' =>'Model Control', 'desc' => 'The ID of a model entity to not draw. Any number of these can be used'}, |
|
151 'iIgnoreMeta' => { 'type' => 'item', 'multi' => 1, 'param' => "ignore-meta=s", 'xpath' => '/model/ignore', |
|
152 'class' =>'Model Control', 'desc' => 'The "rel" meta value to ignore. Takes the form of [relvalue] or [relvalue]:[type]. Any number of these can be used'}, |
151 |
153 |
152 'iNavCtrl' =>{'param' => "navctrl=s" , 'type'=>'boolean' , 'xpath' => '/model/layout/@navctrl', |
154 'iNavCtrl' =>{'param' => "navctrl=s" , 'type'=>'boolean' , 'xpath' => '/model/layout/@navctrl', |
153 'class' =>'Model Control', 'desc' => 'If set, a navigation control widget will appear in the upper left corner of the model. The control might not work on some SVG viewers.'}, |
155 'class' =>'Model Control', 'desc' => 'If set, a navigation control widget will appear in the upper left corner of the model. The control might not work on some SVG viewers.'}, |
154 'iDetail' =>{'param' => "detail=s", 'type' => 'item-type' , 'xpath' => '/model/layout/@detail', |
156 'iDetail' =>{'param' => "detail=s", 'type' => 'item-type' , 'xpath' => '/model/layout/@detail', |
155 'class' =>'Model Control', 'desc' => 'The type of the smallest System Model entity to draw. One of "layer", "package", "collection" or "component". Defaults to "component"'}, |
157 'class' =>'Model Control', 'desc' => 'The type of the smallest System Model entity to draw. One of "layer", "package", "collection" or "component". Defaults to "component"'}, |
186 'iTitleScale' => { 'param' => "title-scale=s", 'type' => 'scale', 'xpath' => '/model/layout/legend/@title-scale', |
188 'iTitleScale' => { 'param' => "title-scale=s", 'type' => 'scale', 'xpath' => '/model/layout/legend/@title-scale', |
187 'class' => 'Model Control', 'desc' =>'Specifies the scale factor for the size of the title font (the text in the lower right). Use this instead of CSS to control the size, since the model generator needs to explicitly know how much space to allocate for the title.'}, |
189 'class' => 'Model Control', 'desc' =>'Specifies the scale factor for the size of the title font (the text in the lower right). Use this instead of CSS to control the size, since the model generator needs to explicitly know how much space to allocate for the title.'}, |
188 'iXsltParam' =>{ 'multi' => 2, 'param' => "xslt-param=s", |
190 'iXsltParam' =>{ 'multi' => 2, 'param' => "xslt-param=s", |
189 'class' =>'Build Control', 'desc' => 'Advanced: Parameters to feed directly to the XSLT transforms'}, |
191 'class' =>'Build Control', 'desc' => 'Advanced: Parameters to feed directly to the XSLT transforms'}, |
190 'iLegendNote' =>{ 'multi' => 1, 'param' => "note=s", 'xpath' => '/model/layout/legend/note', |
192 'iLegendNote' =>{ 'multi' => 1, 'param' => "note=s", 'xpath' => '/model/layout/legend/note', |
191 'class' => 'Labels', 'desc' => 'Free text to appear inside the legend box, on the rightmost side. If multiple ones are provided, they will appear as separate boxes from left to right. Newlines and other special characters can be entity-encoded (e.g. 
)'} |
193 'class' => 'Labels', 'desc' => 'Free text to appear inside the legend box, on the rightmost side. If multiple ones are provided, they will appear as separate boxes from left to right. Newlines and other special characters can be entity-encoded (e.g. 
). When using entities in an INI file, you *must* quote the value, otherwise the # will be treated as a comment delimiter.',} |
192 ); |
194 ); |
193 |
195 |
194 $self->{iArgs} = \%Args; |
196 $self->{iArgs} = \%Args; |
195 |
197 |
196 |
198 |
666 } |
668 } |
667 } |
669 } |
668 } elsif(!$cur->{'multi'}){ |
670 } elsif(!$cur->{'multi'}){ |
669 $info{$match}.="\t<info xmlns='' type='$t' href='",$self->{$param},"'/>\n"; |
671 $info{$match}.="\t<info xmlns='' type='$t' href='",$self->{$param},"'/>\n"; |
670 } |
672 } |
671 } elsif($param eq 'iIgnore' or $param eq 'iLinkExpr' or $param eq 'iSysDefFile') { |
673 } elsif($param eq 'iIgnore' or $param eq 'iIgnoreMeta' or $param eq 'iLinkExpr' or $param eq 'iSysDefFile') { |
672 print XSLT "<template match='",$cur->{'xpath'},"'/>\n" # ignore any already present if set |
674 print XSLT "<template match='",$cur->{'xpath'},"'/>\n" # ignore any already present if set |
673 } |
675 } |
674 } elsif($param eq 'iModel') { |
676 } elsif($param eq 'iModel') { |
675 } else { |
677 } else { |
676 print STDERR "$param ",$self->{$param},"\n"; # should not get here |
678 print STDERR "$param ",$self->{$param},"\n"; # should not get here |
715 "<template name=\"filter\">\n"; |
717 "<template name=\"filter\">\n"; |
716 foreach my $ig (@{$self->{'iIgnore'}}) { |
718 foreach my $ig (@{$self->{'iIgnore'}}) { |
717 print XSLT "\t<ignore xmlns='' "; |
719 print XSLT "\t<ignore xmlns='' "; |
718 if($ig=~/^(.*):(.*)$/) {print XSLT "type='$1' name='$2'/>\n"} |
720 if($ig=~/^(.*):(.*)$/) {print XSLT "type='$1' name='$2'/>\n"} |
719 else {print XSLT "ref='$ig'/>\n"} |
721 else {print XSLT "ref='$ig'/>\n"} |
|
722 } |
|
723 foreach my $ig (@{$self->{'iIgnoreMeta'}}) { |
|
724 print XSLT "\t<ignore xmlns='' "; |
|
725 if($ig=~/^(.*):(.*)$/) {print XSLT "meta-type='$2' meta='$1'/>\n"} |
|
726 else {print XSLT "meta='$ig'/>\n"} |
720 } |
727 } |
721 print XSLT join("\n\t",@{$self->{'iFiltering'}}), |
728 print XSLT join("\n\t",@{$self->{'iFiltering'}}), |
722 "</template>\n"; |
729 "</template>\n"; |
723 |
730 |
724 print XSLT '<template match="layout/legend" mode="content">',"\n"; |
731 print XSLT '<template match="layout/legend" mode="content">',"\n"; |