68290b89f2d1711dfc8b69ab5e66c948b5afa931
[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-2015 - 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 maximum number of blocks on the "Recently Used Blocks" palette */
41     public static final int MAX_RECENTLY_USED_BLOCKS = 12;
42
43     /** Define the history length */
44     public static final int HISTORY_LENGTH = 20;
45
46     /** Define the maximum number of hits to be displayed */
47     public static final int MAX_HITS = 150;
48
49     /** the size of the palette block **/
50     public enum PaletteBlockSize {
51         /** tiny **/
52         TINY,
53         /** small size **/
54         SMALL,
55         /** normal size **/
56         NORMAL,
57         /** large size **/
58         LARGE,
59         /** Extra large size **/
60         XLARGE;
61
62         private static final Dimension DIM_TINY = new Dimension(50, 50);
63         private static final Dimension DIM_SMALL = new Dimension(75, 75);
64         private static final Dimension DIM_NORMAL = new Dimension(100, 100);
65         private static final Dimension DIM_LARGE = new Dimension(120, 120);
66         private static final Dimension DIM_XLARGE = new Dimension(140, 140);
67
68         /**
69          * @return font size
70          */
71         public int getFontSize() {
72             switch (this) {
73                 case TINY:
74                     return 10;
75                 case SMALL:
76                     return 11;
77                 case NORMAL:
78                     return 12;
79                 case LARGE:
80                     return 13;
81                 case XLARGE:
82                     return 13;
83                 default:
84                     return 12;
85             }
86         }
87
88         /**
89          * @return maximum icon height
90          */
91         public int getMaxIconHeight() {
92             // 65% of the frame height
93             return (int) (getBlockDimension().height * 0.65f);
94         }
95
96         /**
97          * @return maximum icon width
98          */
99         public int getMaxIconWidth() {
100             // 65% of the frame width
101             return (int) (getBlockDimension().width * 0.65f);
102         }
103
104         /**
105          * @return block dimension (width and height)
106          */
107         public Dimension getBlockDimension() {
108             switch (this) {
109                 case TINY:
110                     return DIM_TINY;
111                 case SMALL:
112                     return DIM_SMALL;
113                 case NORMAL:
114                     return DIM_NORMAL;
115                 case LARGE:
116                     return DIM_LARGE;
117                 case XLARGE:
118                     return DIM_XLARGE;
119                 default:
120                     return DIM_NORMAL;
121             }
122         }
123
124         /**
125          * Get the next size
126          * @return enum or null if there is no next
127          */
128         public PaletteBlockSize next() {
129             if (this.ordinal() < values().length - 1) {
130                 return values()[ordinal() + 1];
131             }
132             return null;
133         }
134
135         /**
136          * Get the previous size
137          * @return enum or null if there is no previous
138          */
139         public PaletteBlockSize previous() {
140             if (this.ordinal() > 0) {
141                 return values()[ordinal() - 1];
142             }
143             return null;
144         }
145         }
146
147     /* Events */
148     /**
149      * When a block changed
150      */
151     public static final String EVENT_BLOCK_UPDATED = "block";
152     /** Change event old name */
153     public static final String EVENT_CHANGE_OLD = "old";
154     /** Change event new name */
155     public static final String EVENT_CHANGE_NEW = "new";
156
157     /* SCI environment */
158     /** Path from SCI or SCIHOME to the Xcos configuration directory */
159     public static final String XCOS_ETC = "/modules/xcos/etc";
160
161     /** This class is a static singleton, thus it must not be instantiated */
162     private XcosConstants() {
163     }
164 }