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 FilterRepresentation clone() throws CloneNotSupportedException {
55 FilterVignetteRepresentation representation = (FilterVignetteRepresentation) super
57 representation.mCenterX = mCenterX;
58 representation.mCenterY = mCenterY;
60 return representation;
64 public void setCenter(float centerX, float centerY) {
70 public float getCenterX() {
75 public float getCenterY() {
80 public void setRadius(float radiusX, float radiusY) {
86 public void setRadiusX(float radiusX) {
91 public void setRadiusY(float radiusY) {
96 public float getRadiusX() {
101 public float getRadiusY() {
105 public boolean isCenterSet() {
106 return mCenterX != Float.NaN;
110 public boolean isNil() {
111 return getValue() == 0;
114 private static final String[] sParams = {
115 "Name", "value", "mCenterX", "mCenterY", "mRadiusX",
120 public String[][] serializeRepresentation() {
122 { sParams[0], getName() },
123 { sParams[1], Integer.toString(getValue()) },
124 { sParams[2], Float.toString(mCenterX) },
125 { sParams[3], Float.toString(mCenterY) },
126 { sParams[4], Float.toString(mRadiusX) },
127 { sParams[5], Float.toString(mRadiusY) }
133 public void deSerializeRepresentation(String[][] rep) {
134 super.deSerializeRepresentation(rep);
135 for (int i = 0; i < rep.length; i++) {
136 String key = rep[i][0];
137 String value = rep[i][1];
138 if (sParams[0].equals(key)) {
140 } else if (sParams[1].equals(key)) {
141 setValue(Integer.parseInt(value));
142 } else if (sParams[2].equals(key)) {
143 mCenterX = Float.parseFloat(value);
144 } else if (sParams[3].equals(key)) {
145 mCenterY = Float.parseFloat(value);
146 } else if (sParams[4].equals(key)) {
147 mRadiusX = Float.parseFloat(value);
148 } else if (sParams[5].equals(key)) {
149 mRadiusY = Float.parseFloat(value);