]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.g2d/src/org/simantics/g2d/element/handler/impl/TextFontImpl.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.g2d / src / org / simantics / g2d / element / handler / impl / TextFontImpl.java
1 /*******************************************************************************\r
2  * Copyright (c) 2007, 2010 Association for Decentralized Information Management\r
3  * in Industry THTH ry.\r
4  * All rights reserved. This program and the accompanying materials\r
5  * are made available under the terms of the Eclipse Public License v1.0\r
6  * which accompanies this distribution, and is available at\r
7  * http://www.eclipse.org/legal/epl-v10.html\r
8  *\r
9  * Contributors:\r
10  *     VTT Technical Research Centre of Finland - initial API and implementation\r
11  *******************************************************************************/\r
12 package org.simantics.g2d.element.handler.impl;\r
13 \r
14 import java.awt.Font;\r
15 \r
16 import org.simantics.g2d.diagram.IDiagram;\r
17 import org.simantics.g2d.element.ElementHints;\r
18 import org.simantics.g2d.element.IElement;\r
19 import org.simantics.g2d.element.handler.LifeCycle;\r
20 import org.simantics.g2d.element.handler.TextFont;\r
21 import org.simantics.utils.ObjectUtils;\r
22 \r
23 /**\r
24  * \r
25  * @See {@link TextFont}\r
26  * @author Marko Luukkainen\r
27  */\r
28 public class TextFontImpl implements TextFont, LifeCycle {\r
29 \r
30     private static final long serialVersionUID = -6254972866736454459L;\r
31 \r
32     public static TextFontImpl DEFAULT = new TextFontImpl();\r
33 \r
34 \r
35     public synchronized static TextFontImpl handlerOf(java.awt.Font f)\r
36     {\r
37         return new TextFontImpl(f);\r
38     }\r
39 \r
40     java.awt.Font defaultFont;\r
41 \r
42     public TextFontImpl() {\r
43         this.defaultFont = new Font("Arial", Font.PLAIN, 12);\r
44     }\r
45     public TextFontImpl(java.awt.Font defaultFont) {\r
46         this.defaultFont = defaultFont;\r
47     }\r
48 \r
49     @Override\r
50     public java.awt.Font getFont(IElement e) {          \r
51         return e.getHint(ElementHints.KEY_FONT);\r
52     }\r
53 \r
54     @Override\r
55     public void setFont(IElement e, java.awt.Font f) {\r
56         e.setHint(ElementHints.KEY_FONT, f);\r
57     }\r
58 \r
59     @Override\r
60     public void onElementActivated(IDiagram d, IElement e) {\r
61     }\r
62     @Override\r
63     public void onElementCreated(IElement e) {\r
64         if (defaultFont!=null)\r
65             e.setHint(ElementHints.KEY_FONT, defaultFont);\r
66     }\r
67     @Override\r
68     public void onElementDeactivated(IDiagram d, IElement e) {\r
69     }\r
70     @Override\r
71     public void onElementDestroyed(IElement e) {\r
72     }\r
73 \r
74     @Override\r
75     public int hashCode() {\r
76         return ObjectUtils.hashCode(defaultFont);\r
77     }\r
78     @Override\r
79     public boolean equals(Object obj) {\r
80         if (this == obj)\r
81             return true;\r
82         if (obj == null)\r
83             return false;\r
84         if (getClass() != obj.getClass())\r
85             return false;\r
86         TextFontImpl other = (TextFontImpl) obj;\r
87         return ObjectUtils.objectEquals(defaultFont, other.defaultFont);\r
88     }\r
89 }\r