* Bug #14659 fixed: number of I/O ports of the superblock was not updated when adding...
[scilab.git] / scilab / modules / xcos / src / java / org / scilab / modules / xcos / utils / XcosConstants.java
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2010 - DIGITEO - Clement David
4  * Copyright (C) 2011-2017 - Scilab Enterprises - Clement DAVID
5  * Copyright (C) 2015 - Marcos CARDINOT
6  *
7  * Copyright (C) 2012 - 2016 - Scilab Enterprises
8  *
9  * This file is hereby licensed under the terms of the GNU GPL v2.0,
10  * pursuant to article 5.3.4 of the CeCILL v.2.1.
11  * This file was originally licensed under the terms of the CeCILL v2.1,
12  * and continues to be available under such terms.
13  * For more information, see the COPYING file which you should have received
14  * along with this program.
15  *
16  */
17
18 package org.scilab.modules.xcos.utils;
19
20 import java.awt.Dimension;
21
22 import org.scilab.modules.graph.utils.ScilabGraphConstants;
23
24 /**
25  * Contains all the constants used trough the source code.
26  */
27 public final class XcosConstants extends ScilabGraphConstants {
28
29     /** Define the default block height on the palette */
30     public static final double PALETTE_BLOCK_ICON_RATIO = 1.5;
31
32     /** Define the default block horizontal margin on the palette */
33     public static final int PALETTE_HMARGIN = 5;
34     /** Define the default block vertical margin on the palette */
35     public static final int PALETTE_VMARGIN = 5;
36
37     /** Define the maximum number of char that might be represented as style */
38     public static final int MAX_CHAR_IN_STYLE = 37;
39
40     /** Define the history length */
41     public static final int HISTORY_LENGTH = 20;
42
43     /** Define the maximum number of hits to be displayed */
44     public static final int MAX_HITS = 150;
45
46     /** the size of the palette block **/
47     public enum PaletteBlockSize {
48         /** tiny **/
49         TINY,
50         /** small size **/
51         SMALL,
52         /** normal size **/
53         NORMAL,
54         /** large size **/
55         LARGE,
56         /** Extra large size **/
57         XLARGE;
58
59         private static final Dimension DIM_TINY = new Dimension(50, 50);
60         private static final Dimension DIM_SMALL = new Dimension(75, 75);
61         private static final Dimension DIM_NORMAL = new Dimension(100, 100);
62         private static final Dimension DIM_LARGE = new Dimension(120, 120);
63         private static final Dimension DIM_XLARGE = new Dimension(140, 140);
64
65         /**
66          * @return font size
67          */
68         public int getFontSize() {
69             switch (this) {
70                 case TINY:
71                     return 10;
72                 case SMALL:
73                     return 11;
74                 case NORMAL:
75                     return 12;
76                 case LARGE:
77                     return 13;
78                 case XLARGE:
79                     return 13;
80                 default:
81                     return 12;
82             }
83         }
84
85         /**
86          * @return maximum icon height
87          */
88         public int getMaxIconHeight() {
89             // 65% of the frame height
90             return (int) (getBlockDimension().height * 0.65f);
91         }
92
93         /**
94          * @return maximum icon width
95          */
96         public int getMaxIconWidth() {
97             // 65% of the frame width
98             return (int) (getBlockDimension().width * 0.65f);
99         }
100
101         /**
102          * @return block dimension (width and height)
103          */
104         public Dimension getBlockDimension() {
105             switch (this) {
106                 case TINY:
107                     return DIM_TINY;
108                 case SMALL:
109                     return DIM_SMALL;
110                 case NORMAL:
111                     return DIM_NORMAL;
112                 case LARGE:
113                     return DIM_LARGE;
114                 case XLARGE:
115                     return DIM_XLARGE;
116                 default:
117                     return DIM_NORMAL;
118             }
119         }
120
121         /**
122          * Get the next size
123          * @return enum or null if there is no next
124          */
125         public PaletteBlockSize next() {
126             if (this.ordinal() < values().length - 1) {
127                 return values()[ordinal() + 1];
128             }
129             return null;
130         }
131
132         /**
133          * Get the previous size
134          * @return enum or null if there is no previous
135          */
136         public PaletteBlockSize previous() {
137             if (this.ordinal() > 0) {
138                 return values()[ordinal() - 1];
139             }
140             return null;
141         }
142     }
143
144     /* SCI environment */
145     /** Path from SCI or SCIHOME to the Xcos configuration directory */
146     public static final String XCOS_ETC = "/modules/xcos/etc";
147
148     /** This class is a static singleton, thus it must not be instantiated */
149     private XcosConstants() {
150     }
151 }