]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.g2d/src/org/simantics/g2d/page/DiagramDesc.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.g2d / src / org / simantics / g2d / page / DiagramDesc.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.page;\r
13 \r
14 import org.simantics.utils.page.PageDesc;\r
15 \r
16 /**\r
17  * @author Marko Luukkainen\r
18  */\r
19 public class DiagramDesc {\r
20 \r
21     private final PageDesc pageDesc;\r
22     private final double   gridSize;\r
23     private final boolean  pageBordersVisible;\r
24     private final boolean  marginsVisible;\r
25 \r
26     // Global settings\r
27     private final boolean  gridVisible;\r
28     private final boolean  rulerVisible;\r
29 \r
30     public DiagramDesc(PageDesc pageDesc, double gridSize, boolean pageBordersVisible, boolean marginsVisible, boolean gridVisible, boolean rulerVisible) {\r
31         this.pageDesc = pageDesc;\r
32         this.gridSize = gridSize;\r
33         this.pageBordersVisible = pageBordersVisible;\r
34         this.marginsVisible = marginsVisible;\r
35         this.gridVisible = gridVisible;\r
36         this.rulerVisible = rulerVisible;\r
37     }\r
38 \r
39     public PageDesc getPageDesc() {\r
40         return pageDesc;\r
41     }\r
42 \r
43     public double getGridSize() {\r
44         return gridSize;\r
45     }\r
46 \r
47     public boolean isPageBordersVisible() {\r
48         return pageBordersVisible;\r
49     }\r
50 \r
51     public boolean isMarginsVisible() {\r
52         return marginsVisible;\r
53     }\r
54 \r
55     public boolean isGridVisible() {\r
56         return gridVisible;\r
57     }\r
58 \r
59     public boolean isRulerVisible() {\r
60         return rulerVisible;\r
61     }\r
62 \r
63     public DiagramDesc withPageDesc(PageDesc pageDesc) {\r
64         return new DiagramDesc(pageDesc, gridSize, pageBordersVisible, marginsVisible, gridVisible, rulerVisible);\r
65     }\r
66 \r
67     @Override\r
68     public int hashCode() {\r
69         final int prime = 31;\r
70         int result = 1;\r
71         result = prime * result + ((pageDesc == null) ? 0 : pageDesc.hashCode());\r
72         long temp;\r
73         temp = Double.doubleToLongBits(gridSize);\r
74         result = prime * result + (int) (temp ^ (temp >>> 32));\r
75         result = prime * result + (marginsVisible ? 1231 : 1237);\r
76         result = prime * result + (pageBordersVisible ? 1231 : 1237);\r
77         result = prime * result + (gridVisible ? 1231 : 1237);\r
78         result = prime * result + (rulerVisible ? 1231 : 1237);\r
79         return result;\r
80     }\r
81 \r
82     @Override\r
83     public boolean equals(Object obj) {\r
84         if (this == obj)\r
85             return true;\r
86         if (obj == null)\r
87             return false;\r
88         if (getClass() != obj.getClass())\r
89             return false;\r
90         DiagramDesc other = (DiagramDesc) obj;\r
91         if (pageDesc == null) {\r
92             if (other.pageDesc != null)\r
93                 return false;\r
94         } else if (!pageDesc.equals(other.pageDesc))\r
95             return false;\r
96         if (Double.doubleToLongBits(gridSize) != Double.doubleToLongBits(other.gridSize))\r
97             return false;\r
98         if (marginsVisible != other.marginsVisible)\r
99             return false;\r
100         if (pageBordersVisible != other.pageBordersVisible)\r
101             return false;\r
102         if (gridVisible != other.gridVisible)\r
103             return false;\r
104         if (rulerVisible != other.rulerVisible)\r
105             return false;\r
106         return true;\r
107     }\r
108 \r
109     @Override\r
110     public String toString() {\r
111         return "[gridSize=" + gridSize + ", pageBordersVisible=" + pageBordersVisible + ", marginsVisible=" + marginsVisible + ", gridVisible=" + gridVisible + ", rulerVisible=" + rulerVisible + ", pageDesc=" + pageDesc + "]"; \r
112     }\r
113 \r
114 }\r