2b545544217ed7c6efbe7c01ae5d46d9b93617c7
[scilab.git] / scilab / modules / xcos / src / java / org / scilab / modules / xcos / block / ExplicitInBlock.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;
14
15 import org.scilab.modules.hdf5.scilabTypes.ScilabDouble;
16 import org.scilab.modules.hdf5.scilabTypes.ScilabType;
17
18 import org.scilab.modules.xcos.utils.XcosEvent;
19
20 import com.mxgraph.util.mxEventObject;
21
22 public final class ExplicitInBlock extends ContextUpdate {
23
24     private static final long serialVersionUID = -5872963017904352162L;
25
26         public ExplicitInBlock() {
27                 super();
28         }
29
30         protected ExplicitInBlock(String label) {
31                 this();
32                 setDefaultValues();
33                 setValue(label);
34         }
35
36         /**
37          * Initialize the block with the default values
38          */
39         @Override
40         protected void setDefaultValues() {
41                 super.setDefaultValues();
42                 setInterfaceFunctionName("IN_f");
43                 setSimulationFunctionName("input");
44         }
45     
46     public void setExprs(ScilabType exprs) {
47         super.setExprs(exprs);
48     }
49
50     public void updateBlockSettings(BasicBlock modifiedBlock) {
51
52         double oldValue = ((ScilabDouble)getIntegerParameters()).getRealPart()[0][0];
53         super.updateBlockSettings(modifiedBlock);
54         double newValue = ((ScilabDouble)getIntegerParameters()).getRealPart()[0][0];
55
56         if(oldValue != newValue){
57             getParentDiagram().fireEvent(XcosEvent.IN_EXPLICIT_VALUE_UPDATED, new mxEventObject(new Object[]{oldValue,newValue}));
58         }
59     }
60
61     public void setIntegerParameters(ScilabType integerParameters) {
62         super.setIntegerParameters(integerParameters);
63         setValue((int)((ScilabDouble)getIntegerParameters()).getRealPart()[0][0]);
64         if(getParentDiagram() != null) {
65             getParentDiagram().refresh();
66         }
67     }
68
69 }