2 * Copyright (C) 2012 The Android Open Source Project
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 package com.android.gallery3d.filtershow.filters;
19 import com.android.gallery3d.R;
20 import com.android.gallery3d.filtershow.editors.EditorVignette;
21 import com.android.gallery3d.filtershow.imageshow.Oval;
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;
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);
38 setFilterClass(ImageFilterVignette.class);
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;
54 public String toString() {
55 return getName() + " : " + mCenterX + ", " + mCenterY + " radius: " + mRadiusX;
59 public FilterRepresentation copy() {
60 FilterVignetteRepresentation representation = new FilterVignetteRepresentation();
61 copyAllParameters(representation);
62 return representation;
66 protected void copyAllParameters(FilterRepresentation representation) {
67 super.copyAllParameters(representation);
68 representation.useParametersFrom(this);
72 public void setCenter(float centerX, float centerY) {
78 public float getCenterX() {
83 public float getCenterY() {
88 public void setRadius(float radiusX, float radiusY) {
94 public void setRadiusX(float radiusX) {
99 public void setRadiusY(float radiusY) {
104 public float getRadiusX() {
109 public float getRadiusY() {
113 public boolean isCenterSet() {
114 return mCenterX != Float.NaN;
118 public boolean isNil() {
119 return getValue() == 0;
123 public boolean equals(FilterRepresentation representation) {
124 if (!super.equals(representation)) {
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()) {
139 private static final String[] sParams = {
140 "Name", "value", "mCenterX", "mCenterY", "mRadiusX",
145 public String[][] serializeRepresentation() {
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) }
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)) {
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);