Use the setDefaultValue method on constructor as this constructor will be used on...
[scilab.git] / scilab / modules / xcos / src / java / org / scilab / modules / xcos / block / io / ExplicitOutBlock.java
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2009 - DIGITEO - Antoine ELIAS
4  *
5  * This file must be used under the terms of the CeCILL.
6  * This source file is licensed as described in the file COPYING, which
7  * you should have received as part of this distribution.  The terms
8  * are also available at
9  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
10  *
11  */
12
13 package org.scilab.modules.xcos.block.io;
14
15 import org.scilab.modules.hdf5.scilabTypes.ScilabDouble;
16 import org.scilab.modules.hdf5.scilabTypes.ScilabType;
17
18 import org.scilab.modules.xcos.block.BasicBlock;
19 import org.scilab.modules.xcos.utils.XcosConstants;
20 import org.scilab.modules.xcos.utils.XcosEvent;
21
22 import com.mxgraph.util.mxEventObject;
23
24 /**
25  * @author Antoine ELIAS
26  *
27  */
28 public final class ExplicitOutBlock extends ContextUpdate {
29
30     private static final long serialVersionUID = -3423053321045811400L;
31
32         /**
33          * Constructor
34          */
35         public ExplicitOutBlock() {
36                 super();
37         }
38
39         /**
40          * @param label block label
41          */
42         protected ExplicitOutBlock(String label) {
43                 this();
44                 setValue(label);
45         }
46
47         /**
48          * Initialize the block with the default values
49          */
50         @Override
51         protected void setDefaultValues() {
52                 super.setDefaultValues();
53                 setInterfaceFunctionName("OUT_f");
54                 setSimulationFunctionName("output");
55         }
56
57     public void setExprs(ScilabType exprs) {
58         super.setExprs(exprs);
59         //setValue(((ScilabString) getExprs()).getData()[0][0]);
60     }
61
62     public void updateBlockSettings(BasicBlock modifiedBlock) {
63
64         double oldValue = ((ScilabDouble) getIntegerParameters()).getRealPart()[0][0];
65         super.updateBlockSettings(modifiedBlock);
66         double newValue = ((ScilabDouble) getIntegerParameters()).getRealPart()[0][0];
67
68         if (oldValue != newValue) {
69             getParentDiagram().fireEvent(new mxEventObject(XcosEvent.OUT_EXPLICIT_VALUE_UPDATED, XcosConstants.EVENT_CHANGE_OLD,
70                     oldValue, XcosConstants.EVENT_CHANGE_NEW, newValue));
71         }
72     }
73
74     public void setIntegerParameters(ScilabType integerParameters) {
75         super.setIntegerParameters(integerParameters);
76         setValue((int) ((ScilabDouble) getIntegerParameters()).getRealPart()[0][0]);
77     }
78 }