1 /*
2  * Copyright (C) 2013 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 
20 import android.util.Log;
21 
22 import com.android.gallery3d.filtershow.controller.Control;
23 import com.android.gallery3d.filtershow.controller.FilterView;
24 import com.android.gallery3d.filtershow.controller.Parameter;
25 import com.android.gallery3d.filtershow.controller.ParameterInteger;
26 
27 public class FilterBasicRepresentation extends FilterRepresentation implements ParameterInteger {
28     private static final String LOGTAG = "FilterBasicRep";
29     private int mMinimum;
30     private int mValue;
31     private int mMaximum;
32     private int mDefaultValue;
33     private int mPreviewValue;
34     public static final String SERIAL_NAME = "Name";
35     public static final String SERIAL_VALUE = "Value";
36     private boolean mLogVerbose = Log.isLoggable(LOGTAG, Log.VERBOSE);
37 
FilterBasicRepresentation(String name, int minimum, int value, int maximum)38     public FilterBasicRepresentation(String name, int minimum, int value, int maximum) {
39         super(name);
40         mMinimum = minimum;
41         mMaximum = maximum;
42         setValue(value);
43     }
44 
45     @Override
toString()46     public String toString() {
47         return getName() + " : " + mMinimum + " < " + mValue + " < " + mMaximum;
48     }
49 
50     @Override
copy()51     public FilterRepresentation copy() {
52         FilterBasicRepresentation representation = new FilterBasicRepresentation(getName(),0,0,0);
53         copyAllParameters(representation);
54         return representation;
55     }
56 
57     @Override
copyAllParameters(FilterRepresentation representation)58     protected void copyAllParameters(FilterRepresentation representation) {
59         super.copyAllParameters(representation);
60         representation.useParametersFrom(this);
61     }
62 
63     @Override
useParametersFrom(FilterRepresentation a)64     public void useParametersFrom(FilterRepresentation a) {
65         if (a instanceof FilterBasicRepresentation) {
66             FilterBasicRepresentation representation = (FilterBasicRepresentation) a;
67             setMinimum(representation.getMinimum());
68             setMaximum(representation.getMaximum());
69             setValue(representation.getValue());
70             setDefaultValue(representation.getDefaultValue());
71             setPreviewValue(representation.getPreviewValue());
72         }
73     }
74 
75     @Override
equals(FilterRepresentation representation)76     public boolean equals(FilterRepresentation representation) {
77         if (!super.equals(representation)) {
78             return false;
79         }
80         if (representation instanceof FilterBasicRepresentation) {
81             FilterBasicRepresentation basic = (FilterBasicRepresentation) representation;
82             if (basic.mMinimum == mMinimum
83                     && basic.mMaximum == mMaximum
84                     && basic.mValue == mValue
85                     && basic.mDefaultValue == mDefaultValue
86                     && basic.mPreviewValue == mPreviewValue) {
87                 return true;
88             }
89         }
90         return false;
91     }
92 
93     @Override
getMinimum()94     public int getMinimum() {
95         return mMinimum;
96     }
97 
setMinimum(int minimum)98     public void setMinimum(int minimum) {
99         mMinimum = minimum;
100     }
101 
102     @Override
getValue()103     public int getValue() {
104         return mValue;
105     }
106 
107     @Override
setValue(int value)108     public void setValue(int value) {
109         mValue = value;
110         if (mValue < mMinimum) {
111             mValue = mMinimum;
112         }
113         if (mValue > mMaximum) {
114             mValue = mMaximum;
115         }
116     }
117 
118     @Override
getMaximum()119     public int getMaximum() {
120         return mMaximum;
121     }
122 
setMaximum(int maximum)123     public void setMaximum(int maximum) {
124         mMaximum = maximum;
125     }
126 
setDefaultValue(int defaultValue)127     public void setDefaultValue(int defaultValue) {
128         mDefaultValue = defaultValue;
129     }
130 
131     @Override
getDefaultValue()132     public int getDefaultValue() {
133         return mDefaultValue;
134     }
135 
getPreviewValue()136     public int getPreviewValue() {
137         return mPreviewValue;
138     }
139 
setPreviewValue(int previewValue)140     public void setPreviewValue(int previewValue) {
141         mPreviewValue = previewValue;
142     }
143 
144     @Override
getStateRepresentation()145     public String getStateRepresentation() {
146         int val = getValue();
147         return ((val > 0) ? "+" : "") + val;
148     }
149 
150     @Override
getParameterType()151     public String getParameterType(){
152         return sParameterType;
153     }
154 
155     @Override
setController(Control control)156     public void setController(Control control) {
157     }
158 
159     @Override
getValueString()160     public String getValueString() {
161         return getStateRepresentation();
162     }
163 
164     @Override
getParameterName()165     public String getParameterName() {
166         return getName();
167     }
168 
169     @Override
setFilterView(FilterView editor)170     public void setFilterView(FilterView editor) {
171     }
172 
173     @Override
copyFrom(Parameter src)174     public void copyFrom(Parameter src) {
175         useParametersFrom((FilterBasicRepresentation) src);
176     }
177 
178     @Override
serializeRepresentation()179     public String[][] serializeRepresentation() {
180         String[][] ret = {
181                 {SERIAL_NAME  , getName() },
182                 {SERIAL_VALUE , Integer.toString(mValue)}};
183         return ret;
184     }
185 
186     @Override
deSerializeRepresentation(String[][] rep)187     public void deSerializeRepresentation(String[][] rep) {
188         super.deSerializeRepresentation(rep);
189         for (int i = 0; i < rep.length; i++) {
190             if (SERIAL_VALUE.equals(rep[i][0])) {
191                 mValue = Integer.parseInt(rep[i][1]);
192                 break;
193             }
194         }
195     }
196 }
197