From 9169ff53a3d829e6ee499abe4732e13699f9ba96 Mon Sep 17 00:00:00 2001 From: Michael Wiebusch Date: Mon, 1 Jul 2013 14:30:24 +0200 Subject: [PATCH] colors for different levels of settings inheritance --- config/settings.xml | 2 +- layout/jtageditor.css | 55 +++++++++++++++++--- xml_spielwiese/cgitest.pl | 106 ++++++++++++++++++++++++++++++-------- 3 files changed, 133 insertions(+), 30 deletions(-) diff --git a/config/settings.xml b/config/settings.xml index c6ac0bc..82d9e4c 100644 --- a/config/settings.xml +++ b/config/settings.xml @@ -1,3 +1,3 @@ - + diff --git a/layout/jtageditor.css b/layout/jtageditor.css index dc6a3bf..e329f53 100644 --- a/layout/jtageditor.css +++ b/layout/jtageditor.css @@ -66,9 +66,6 @@ input[type="text"] height:25px; } -.ancestorInfo { - height:3em; -} table.registers { border-collapse:collapse; @@ -97,15 +94,46 @@ table.fields td { height:25px; } - -table.registers td:nth-child(2) { +table.registers>tbody>tr>td:nth-child(2) { background:lightgrey; } -table.fields td:nth-child(2) { - background:#dea; - } +tr.fileLevel +{ +background:#CCFFCC; +//background:#dea; +} + +tr.fileLevel1 +{ +background:#CCFFFF; +} + +tr.fileLevel2 +{ +background:#CCCCFF; +} + +tr.fileLevel3 +{ +background:#FFCCFF; +} + +tr.fileLevel4 +{ +background:#FFCCCC; +} + +tr.fileLevel5 +{ +background:#FFFFCC; +} + +tr.fileLevel6 +{ +background:#FFFFFF; +} table.fields td.button_move, table.registers td.button_move { background:orange; @@ -117,6 +145,17 @@ table.fields td.button_move, table.registers td.button_move { border:2px solid white; } + +table.fields td.button_move_deac { + background:grey; + cursor:normal; + text-align:center; + color:black; + font-weight:bold; + width:25px; + border:2px solid white; +} + .regheader { background:lightgrey; font-variant:small-caps; diff --git a/xml_spielwiese/cgitest.pl b/xml_spielwiese/cgitest.pl index 13fa84d..037dbc3 100755 --- a/xml_spielwiese/cgitest.pl +++ b/xml_spielwiese/cgitest.pl @@ -62,6 +62,8 @@ my $setfileName = ""; my $spectree; my $settree; +my %fileLevelHash; + my $ancestryTree; my @ancestryList; @@ -86,11 +88,17 @@ if ( $cgiHash{'print'} eq 'settree' ) { print "
Selected Settings
\n"; parseSetAndSpec( $cgiHash{'configFile'} ); buildAncestry($setfileName); - #only for debug - $settree = $ancestryTree; +# assignFieldColors();#obsolete + + $settree = $ancestryTree; # not so elegant print "
"; print "inherit settings from:
"; - print join( "
", @ancestryList ); + print ""; + for my $ancestor (@ancestryList) { + print ""; + } + print "
$ancestor
"; + print "
"; print_registers($setfile); } @@ -153,11 +161,13 @@ sub buildAncestry { # recursive $xmltree = $settree; } else { + # we got an ancestor here $xmltree = $parser->parse_file($xmlfile); + # tag all the fields with an heritage attribute - for my $field ($xmltree->findnodes("//field")){ - $field->setAttribute("isHeritageFrom","$xmlfileName"); + for my $field ( $xmltree->findnodes("//field") ) { + $field->setAttribute( "isHeritageFrom", "$xmlfileName" ); } } @@ -179,11 +189,17 @@ sub buildAncestry { # recursive $ancestryTree = $xmltree; } + + my $counter=1; + for my $file (reverse(@ancestryList)){ + $fileLevelHash{$file}=$counter; + if ($counter < 6) { + $counter++; + } + } } - - sub mergeTrees { # give me two trees, tree1 overwrites everything in tree0 and will consequently be integrated in tree0 my $tree0 = $_[0]; @@ -216,7 +232,8 @@ sub mergeTrees # if field with same name exists in tree0/register0 delete it! my $field0 = - $register0->findnodes( "./field[\@name='" . $fieldName . "'" ); + $register0->findnodes( "./field[\@name='" . $fieldName . "']" ) + ->shift(); unless ( $field0 eq "" ) { $register0->removeChild($field0); } @@ -284,16 +301,24 @@ sub print_fileSelection { print ''; @@ -404,6 +429,7 @@ sub copyDefaultRegister { close SCHREIBEN; } +# a sorting directive for fields and registers sub by_name { my $a_name = $a->findvalue("./\@name"); my $b_name = $b->findvalue("./\@name"); @@ -418,6 +444,27 @@ sub printHash { } } +#sub assignFieldColors { +# +# my @fieldColors = ( +# "#CCFFCC", "#CCFFFF", "#CCCCFF", "#FFCCFF", +# "#FFCCCC", "#FFFFCC", "#FFFFFF" +# ); +# +# my @ancestryWithChild; +# push(@ancestryWithChild,@ancestryList); +# push(@ancestryWithChild,$setfileName); +# +# my $index=0; +# for my $fileName (reverse(@ancestryWithChild)){ +# $fieldColorHash{$fileName}= $fieldColors[$index]; +# if($index < @fieldColors){ +# $index++; +# } +# } +# +#} + sub print_registers { my $xmlfile = $_[0]; my $xmltree; @@ -455,12 +502,13 @@ EOF #print "$registerId"; - if ( $xmlfile eq $setfile ) { + if ( $xmlfile eq $setfile ) { # we are printing the Specifications Tree print < X  EOF } - if ( $xmlfile eq $specfile ) { + if ( $xmlfile eq $specfile ) { # we are printing the Settings Tree + print < →  EOF @@ -488,10 +536,11 @@ sub print_fields { my @fields = sort by_name $register->findnodes("./field"); print ""; for my $field (@fields) { - my $fieldName = $field->findvalue("./\@name"); - my $readOnlyFlag = 0; - my $fieldValue = $field->findvalue("./\@value"); - my $fieldDescr = prepare_text( + my $fieldName = $field->findvalue("./\@name"); + my $isHeritageFrom = $field->findvalue("./\@isHeritageFrom") || ""; + my $readOnlyFlag = 0; + my $fieldValue = $field->findvalue("./\@value"); + my $fieldDescr = prepare_text( $spectree->findvalue( "/MAPS/register[\@name='" . $registerName @@ -501,14 +550,21 @@ sub print_fields { ) || "n/a" ); + + unless ( $isHeritageFrom eq "" ) { + $fieldDescr = + "Field was inherited from $isHeritageFrom\n\n" . $fieldDescr; + } + my $fieldId = $xmlfile . "//" . $registerName . "/" . $fieldName; if ( $fieldValue eq "" ) { $fieldValue = $field->findvalue("./\@defaultValue"); $readOnlyFlag = 1; } - print ""; - print ""; + print ""; + print ""; print ""; if ($readOnlyFlag) { print <'; - if ( $xmlfile eq $specfile ) { + if ( $xmlfile eq $specfile ) { # we are printing the Specifications tree print < →  EOF } - if ( $xmlfile eq $setfile ) { - print < X  EOF + } + else { + print ""; + } } print ""; } -- 2.43.0
$fieldName
$fieldName  =  X