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 setPriority(FilterRepresentation.TYPE_VIGNETTE);
35 setTextId(R.string.vignette);
36 setButtonId(R.id.vignetteEditor);
37 setEditorId(EditorVignette.ID);
39 setFilterClass(ImageFilterVignette.class);
47 public void useParametersFrom(FilterRepresentation a) {
48 super.useParametersFrom(a);
49 mCenterX = ((FilterVignetteRepresentation) a).mCenterX;
50 mCenterY = ((FilterVignetteRepresentation) a).mCenterY;
51 mRadiusX = ((FilterVignetteRepresentation) a).mRadiusX;
52 mRadiusY = ((FilterVignetteRepresentation) a).mRadiusY;
56 public FilterRepresentation clone() throws CloneNotSupportedException {
57 FilterVignetteRepresentation representation = (FilterVignetteRepresentation) super
59 representation.mCenterX = mCenterX;
60 representation.mCenterY = mCenterY;
62 return representation;
66 public void setCenter(float centerX, float centerY) {
72 public float getCenterX() {
77 public float getCenterY() {
82 public void setRadius(float radiusX, float radiusY) {
88 public void setRadiusX(float radiusX) {
93 public void setRadiusY(float radiusY) {
98 public float getRadiusX() {
103 public float getRadiusY() {
107 public boolean isCenterSet() {
108 return mCenterX != Float.NaN;
112 public boolean isNil() {
113 return getValue() == 0;
116 private static final String[] sParams = {
117 "Name", "value", "mCenterX", "mCenterY", "mRadiusX",
122 public String[][] serializeRepresentation() {
124 { sParams[0], getName() },
125 { sParams[1], Integer.toString(getValue()) },
126 { sParams[2], Float.toString(mCenterX) },
127 { sParams[3], Float.toString(mCenterY) },
128 { sParams[4], Float.toString(mRadiusX) },
129 { sParams[5], Float.toString(mRadiusY) }
135 public void deSerializeRepresentation(String[][] rep) {
136 super.deSerializeRepresentation(rep);
137 for (int i = 0; i < rep.length; i++) {
138 String key = rep[i][0];
139 String value = rep[i][1];
140 if (sParams[0].equals(key)) {
142 } else if (sParams[1].equals(key)) {
143 setValue(Integer.parseInt(value));
144 } else if (sParams[2].equals(key)) {
145 mCenterX = Float.parseFloat(value);
146 } else if (sParams[3].equals(key)) {
147 mCenterY = Float.parseFloat(value);
148 } else if (sParams[4].equals(key)) {
149 mRadiusX = Float.parseFloat(value);
150 } else if (sParams[5].equals(key)) {
151 mRadiusY = Float.parseFloat(value);