OSDN Git Service

Merge remote-tracking branch 'origin/klp-dev' into klp-dev
[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 FilterRepresentation copy() {
55         FilterVignetteRepresentation representation = new FilterVignetteRepresentation();
56         copyAllParameters(representation);
57         return representation;
58     }
59
60     @Override
61     protected void copyAllParameters(FilterRepresentation representation) {
62         super.copyAllParameters(representation);
63         representation.useParametersFrom(this);
64     }
65
66     @Override
67     public void setCenter(float centerX, float centerY) {
68         mCenterX = centerX;
69         mCenterY = centerY;
70     }
71
72     @Override
73     public float getCenterX() {
74         return mCenterX;
75     }
76
77     @Override
78     public float getCenterY() {
79         return mCenterY;
80     }
81
82     @Override
83     public void setRadius(float radiusX, float radiusY) {
84         mRadiusX = radiusX;
85         mRadiusY = radiusY;
86     }
87
88     @Override
89     public void setRadiusX(float radiusX) {
90         mRadiusX = radiusX;
91     }
92
93     @Override
94     public void setRadiusY(float radiusY) {
95         mRadiusY = radiusY;
96     }
97
98     @Override
99     public float getRadiusX() {
100         return mRadiusX;
101     }
102
103     @Override
104     public float getRadiusY() {
105         return mRadiusY;
106     }
107
108     public boolean isCenterSet() {
109         return mCenterX != Float.NaN;
110     }
111
112     @Override
113     public boolean isNil() {
114         return getValue() == 0;
115     }
116
117     @Override
118     public boolean equals(FilterRepresentation representation) {
119         if (!super.equals(representation)) {
120             return false;
121         }
122         if (representation instanceof FilterVignetteRepresentation) {
123             FilterVignetteRepresentation rep = (FilterVignetteRepresentation) representation;
124             if (rep.getCenterX() == getCenterX()
125                     && rep.getCenterY() == getCenterY()
126                     && rep.getRadiusX() == getRadiusX()
127                     && rep.getRadiusY() == getRadiusY()) {
128                 return true;
129             }
130         }
131         return false;
132     }
133
134     private static final String[] sParams = {
135             "Name", "value", "mCenterX", "mCenterY", "mRadiusX",
136             "mRadiusY"
137     };
138
139     @Override
140     public String[][] serializeRepresentation() {
141         String[][] ret = {
142                 { sParams[0], getName() },
143                 { sParams[1], Integer.toString(getValue()) },
144                 { sParams[2], Float.toString(mCenterX) },
145                 { sParams[3], Float.toString(mCenterY) },
146                 { sParams[4], Float.toString(mRadiusX) },
147                 { sParams[5], Float.toString(mRadiusY) }
148         };
149         return ret;
150     }
151
152     @Override
153     public void deSerializeRepresentation(String[][] rep) {
154         super.deSerializeRepresentation(rep);
155         for (int i = 0; i < rep.length; i++) {
156             String key = rep[i][0];
157             String value = rep[i][1];
158             if (sParams[0].equals(key)) {
159                 setName(value);
160             } else if (sParams[1].equals(key)) {
161                setValue(Integer.parseInt(value));
162             } else if (sParams[2].equals(key)) {
163                 mCenterX = Float.parseFloat(value);
164             } else if (sParams[3].equals(key)) {
165                 mCenterY = Float.parseFloat(value);
166             } else if (sParams[4].equals(key)) {
167                 mRadiusX = Float.parseFloat(value);
168             } else if (sParams[5].equals(key)) {
169                 mRadiusY = Float.parseFloat(value);
170             }
171         }
172     }
173 }