1515import java .util .Collections ;
1616import java .util .Date ;
1717import java .util .List ;
18+ import java .util .Map ;
19+ import java .util .Map .Entry ;
20+ import java .util .Set ;
1821import java .util .TimeZone ;
1922
2023import javax .xml .parsers .DocumentBuilder ;
3235import org .w3c .dom .DocumentType ;
3336import org .w3c .dom .Element ;
3437
38+ import calib .MdbWorkspace .VariableECU ;
3539import jxl .Workbook ;
3640import jxl .format .Alignment ;
3741import jxl .format .Border ;
@@ -53,6 +57,7 @@ public final class MapCal {
5357 private final List <Variable > listVariable ;
5458 private MdbData mdbData ;
5559 private boolean usedByFormula = false ;
60+ private boolean hasWorkspace = false ;
5661
5762 public MapCal (File mapFile ) {
5863 this .name = mapFile .getName ().replace (".map" , "" );
@@ -89,17 +94,10 @@ private final void parseFile(File mapFile) {
8994
9095 if (mdbData .getInfos ().isEmpty () || variable .getInfos () != null ) {
9196 listVariable .add (variable );
92- if (!variable .checkDim ()) {
93- // System.out.println(variable.getName() + " => CheckDim nOK");
94- }
95-
96- } else {
97- // System.out.println(variable.getName() + " => non présente dans le mdb");
9897 }
9998
10099 nLigne --;
101100 }
102-
103101 }
104102
105103 } catch (IOException e ) {
@@ -129,6 +127,10 @@ public String toString() {
129127 return this .name ;
130128 }
131129
130+ public final boolean hasWorkspaceLinked () {
131+ return hasWorkspace ;
132+ }
133+
132134 public List <Variable > getListVariable () {
133135 Collections .sort (listVariable );
134136 return listVariable ;
@@ -143,6 +145,33 @@ public final Variable getVariable(String name) {
143145 return null ;
144146 }
145147
148+ public final boolean associateWorksplace (Map <String , VariableECU > variablesECU ) {
149+
150+ boolean result = false ;
151+
152+ Set <Entry <String , VariableECU >> entries = variablesECU .entrySet ();
153+ for (Variable var : listVariable ) {
154+ for (Entry entry : entries ) {
155+ VariableECU variableECU = (VariableECU ) entry .getValue ();
156+ if (var .getInfos ().getVarCol () == variableECU .getOffset ()) {
157+ var .setInputX (entry .getKey ().toString ());
158+ result = true ;
159+ } else if (var .getInfos ().getVarLigne () == variableECU .getOffset ()) {
160+ var .setInputY (entry .getKey ().toString ());
161+ result = true ;
162+ }
163+ }
164+ }
165+
166+ if (result ) {
167+ hasWorkspace = true ;
168+ } else {
169+ hasWorkspace = false ;
170+ }
171+
172+ return result ;
173+ }
174+
146175 public static final boolean toCdfx (List <Variable > listVariable , final File file ) {
147176
148177 DocumentBuilderFactory dbFactory = DocumentBuilderFactory .newInstance ();
@@ -555,24 +584,43 @@ public static final boolean exportMap(List<Variable> listVariable, final File fi
555584 pw .print (BKPTCOL + EGALE );
556585
557586 for (short x = 1 ; x < var .getDimX (); x ++) {
558- pw .print (var .getValue (modifiedVar , 0 , x ) + SEMICOLON );
587+
588+ value = var .getValue (modifiedVar , 0 , x );
589+
590+ if (value == null || "NaN" .equals (value .toString ())) {
591+ value = "" ;
592+ }
593+ pw .print (value + SEMICOLON );
559594 }
560595 pw .println ();
561596
562597 pw .print (BKPTLIGN + EGALE );
563598
564599 for (short y = 1 ; y < var .getDimY (); y ++) {
565- pw .print (var .getValue (modifiedVar , y , 0 ) + SEMICOLON );
600+
601+ value = var .getValue (modifiedVar , y , 0 );
602+
603+ if (value == null || "NaN" .equals (value .toString ())) {
604+ value = "" ;
605+ }
606+ pw .print (value + SEMICOLON );
566607 }
567608 pw .println ();
568609
569610 for (short y = 1 ; y < var .getDimY (); y ++) {
570611 for (short x = 0 ; x < var .getDimX (); x ++) {
612+
613+ value = var .getValue (modifiedVar , y , x );
614+
615+ if (value == null || "NaN" .equals (value .toString ())) {
616+ value = "" ;
617+ }
618+
571619 if (x == 0 ) {
572- pw .print (LIGNE + var . getValue ( modifiedVar , y , x ) + EGALE );
620+ pw .print (LIGNE + value + EGALE );
573621 continue ;
574622 }
575- pw .print (var . getValue ( modifiedVar , y , x ) + SEMICOLON );
623+ pw .print (value + SEMICOLON );
576624 }
577625 pw .println ();
578626 }
0 commit comments