OSDN Git Service

Merge "Import translations. DO NOT MERGE"
[android-x86/packages-apps-Gallery2.git] / src / com / android / gallery3d / filtershow / filters / FilterVignetteRepresentation.java
1 /*
2  * Copyright (C) 2012 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package com.android.gallery3d.filtershow.filters;
18
19 import com.android.gallery3d.R;
20 import com.android.gallery3d.filtershow.editors.EditorVignette;
21 import com.android.gallery3d.filtershow.imageshow.Oval;
22
23 public class FilterVignetteRepresentation extends FilterBasicRepresentation implements Oval {
24     private static final String LOGTAG = "FilterVignetteRepresentation";
25     private float mCenterX = Float.NaN;
26     private float mCenterY;
27     private float mRadiusX = Float.NaN;
28     private float mRadiusY;
29
30     public FilterVignetteRepresentation() {
31         super("Vignette", -100, 50, 100);
32         setSerializationName("VIGNETTE");
33         setShowParameterValue(true);
34         setFilterType(FilterRepresentation.TYPE_VIGNETTE);
35         setTextId(R.string.vignette);
36         setEditorId(EditorVignette.ID);
37         setName("Vignette");
38         setFilterClass(ImageFilterVignette.class);
39         setMinimum(-100);
40         setMaximum(100);
41         setDefaultValue(0);
42     }
43
44     @Override
45     public void useParametersFrom(FilterRepresentation a) {
46         super.useParametersFrom(a);
47         mCenterX = ((FilterVignetteRepresentation) a).mCenterX;
48         mCenterY = ((FilterVignetteRepresentation) a).mCenterY;
49         mRadiusX = ((FilterVignetteRepresentation) a).mRadiusX;
50         mRadiusY = ((FilterVignetteRepresentation) a).mRadiusY;
51     }
52
53     @Override
54     public String toString() {
55         return getName() + " : " + mCenterX + ", " + mCenterY + " radius: " + mRadiusX;
56     }
57
58     @Override
59     public FilterRepresentation copy() {
60         FilterVignetteRepresentation representation = new FilterVignetteRepresentation();
61         copyAllParameters(representation);
62         return representation;
63     }
64
65     @Override
66     protected void copyAllParameters(FilterRepresentation representation) {
67         super.copyAllParameters(representation);
68         representation.useParametersFrom(this);
69     }
70
71     @Override
72     public void setCenter(float centerX, float centerY) {
73         mCenterX = centerX;
74         mCenterY = centerY;
75     }
76
77     @Override
78     public float getCenterX() {
79         return mCenterX;
80     }
81
82     @Override
83     public float getCenterY() {
84         return mCenterY;
85     }
86
87     @Override
88     public void setRadius(float radiusX, float radiusY) {
89         mRadiusX = radiusX;
90         mRadiusY = radiusY;
91     }
92
93     @Override
94     public void setRadiusX(float radiusX) {
95         mRadiusX = radiusX;
96     }
97
98     @Override
99     public void setRadiusY(float radiusY) {
100         mRadiusY = radiusY;
101     }
102
103     @Override
104     public float getRadiusX() {
105         return mRadiusX;
106     }
107
108     @Override
109     public float getRadiusY() {
110         return mRadiusY;
111     }
112
113     public boolean isCenterSet() {
114         return mCenterX != Float.NaN;
115     }
116
117     @Override
118     public boolean isNil() {
119         return getValue() == 0;
120     }
121
122     @Override
123     public boolean equals(FilterRepresentation representation) {
124         if (!super.equals(representation)) {
125             return false;
126         }
127         if (representation instanceof FilterVignetteRepresentation) {
128             FilterVignetteRepresentation rep = (FilterVignetteRepresentation) representation;
129             if (rep.getCenterX() == getCenterX()
130                     && rep.getCenterY() == getCenterY()
131                     && rep.getRadiusX() == getRadiusX()
132                     && rep.getRadiusY() == getRadiusY()) {
133                 return true;
134             }
135         }
136         return false;
137     }
138
139     private static final String[] sParams = {
140             "Name", "value", "mCenterX", "mCenterY", "mRadiusX",
141             "mRadiusY"
142     };
143
144     @Override
145     public String[][] serializeRepresentation() {
146         String[][] ret = {
147                 { sParams[0], getName() },
148                 { sParams[1], Integer.toString(getValue()) },
149                 { sParams[2], Float.toString(mCenterX) },
150                 { sParams[3], Float.toString(mCenterY) },
151                 { sParams[4], Float.toString(mRadiusX) },
152                 { sParams[5], Float.toString(mRadiusY) }
153         };
154         return ret;
155     }
156
157     @Override
158     public void deSerializeRepresentation(String[][] rep) {
159         super.deSerializeRepresentation(rep);
160         for (int i = 0; i < rep.length; i++) {
161             String key = rep[i][0];
162             String value = rep[i][1];
163             if (sParams[0].equals(key)) {
164                 setName(value);
165             } else if (sParams[1].equals(key)) {
166                setValue(Integer.parseInt(value));
167             } else if (sParams[2].equals(key)) {
168                 mCenterX = Float.parseFloat(value);
169             } else if (sParams[3].equals(key)) {
170                 mCenterY = Float.parseFloat(value);
171             } else if (sParams[4].equals(key)) {
172                 mRadiusX = Float.parseFloat(value);
173             } else if (sParams[5].equals(key)) {
174                 mRadiusY = Float.parseFloat(value);
175             }
176         }
177     }
178 }