FilterBasicRepresentation.java revision 33de212ec780eaf2bc8d86908f07da33ea8dd7f2
171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard/*
271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard * Copyright (C) 2013 The Android Open Source Project
371f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard *
471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard * Licensed under the Apache License, Version 2.0 (the "License");
571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard * you may not use this file except in compliance with the License.
671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard * You may obtain a copy of the License at
771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard *
871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard *      http://www.apache.org/licenses/LICENSE-2.0
971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard *
1071f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard * Unless required by applicable law or agreed to in writing, software
1171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard * distributed under the License is distributed on an "AS IS" BASIS,
1271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1371f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard * See the License for the specific language governing permissions and
1471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard * limitations under the License.
1571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard */
1671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard
1771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroardpackage com.android.gallery3d.filtershow.filters;
1871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard
1971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroardimport com.android.gallery3d.app.Log;
20235d2179374bec14040f20af91dc753e38ea3639John Hofordimport com.android.gallery3d.filtershow.controller.Control;
21d2f5fe607ee6d7b5f79862b495495e2f6024cdabJohn Hofordimport com.android.gallery3d.filtershow.controller.FilterView;
22d2f5fe607ee6d7b5f79862b495495e2f6024cdabJohn Hofordimport com.android.gallery3d.filtershow.controller.Parameter;
23235d2179374bec14040f20af91dc753e38ea3639John Hofordimport com.android.gallery3d.filtershow.controller.ParameterInteger;
2471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard
25235d2179374bec14040f20af91dc753e38ea3639John Hofordpublic class FilterBasicRepresentation extends FilterRepresentation implements ParameterInteger {
2671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    private static final String LOGTAG = "FilterBasicRepresentation";
2771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    private int mMinimum;
2871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    private int mValue;
2971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    private int mMaximum;
3071f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    private int mDefaultValue;
3171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    private int mPreviewValue;
3271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard
3371f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    public FilterBasicRepresentation(String name, int minimum, int value, int maximum) {
3471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        super(name);
3571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        mMinimum = minimum;
3671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        mMaximum = maximum;
3771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        setValue(value);
3871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    }
3971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard
40235d2179374bec14040f20af91dc753e38ea3639John Hoford    @Override
4171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    public String toString() {
4271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        return getName() + " : " + mMinimum + " < " + mValue + " < " + mMaximum;
4371f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    }
4471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard
4571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    @Override
4671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    public FilterRepresentation clone() throws CloneNotSupportedException {
4771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        FilterBasicRepresentation representation = (FilterBasicRepresentation) super.clone();
4871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        representation.setMinimum(getMinimum());
4971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        representation.setMaximum(getMaximum());
5071f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        representation.setValue(getValue());
5171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        Log.v(LOGTAG, "cloning from <" + this + "> to <" + representation + ">");
5271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        return representation;
5371f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    }
5471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard
55235d2179374bec14040f20af91dc753e38ea3639John Hoford    @Override
5671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    public void useParametersFrom(FilterRepresentation a) {
5771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        if (a instanceof FilterBasicRepresentation) {
5871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard            FilterBasicRepresentation representation = (FilterBasicRepresentation) a;
5971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard            setMinimum(representation.getMinimum());
6071f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard            setMaximum(representation.getMaximum());
6171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard            setValue(representation.getValue());
6271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard            setDefaultValue(representation.getDefaultValue());
6371f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard            setPreviewValue(representation.getPreviewValue());
6471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        }
6571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    }
6671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard
6771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    @Override
6871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    public boolean equals(FilterRepresentation representation) {
69d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard        if (!super.equals(representation)) {
7071f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard            return false;
7171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        }
7271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        if (representation instanceof FilterBasicRepresentation) {
7371f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard            FilterBasicRepresentation basic = (FilterBasicRepresentation) representation;
7471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard            if (basic.mMinimum == mMinimum
7571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard                    && basic.mMaximum == mMaximum
7671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard                    && basic.mValue == mValue
7771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard                    && basic.mDefaultValue == mDefaultValue
7871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard                    && basic.mPreviewValue == mPreviewValue) {
7971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard                return true;
8071f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard            }
8171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        }
8271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        return false;
8371f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    }
8471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard
85235d2179374bec14040f20af91dc753e38ea3639John Hoford    @Override
8671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    public int getMinimum() {
8771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        return mMinimum;
8871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    }
8971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard
9071f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    public void setMinimum(int minimum) {
9171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        mMinimum = minimum;
9271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    }
9371f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard
94235d2179374bec14040f20af91dc753e38ea3639John Hoford    @Override
9571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    public int getValue() {
9671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        return mValue;
9771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    }
9871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard
99235d2179374bec14040f20af91dc753e38ea3639John Hoford    @Override
10071f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    public void setValue(int value) {
10171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        mValue = value;
10271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        if (mValue < mMinimum) {
10371f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard            mValue = mMinimum;
10471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        }
10571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        if (mValue > mMaximum) {
10671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard            mValue = mMaximum;
10771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        }
10871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    }
10971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard
110235d2179374bec14040f20af91dc753e38ea3639John Hoford    @Override
11171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    public int getMaximum() {
11271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        return mMaximum;
11371f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    }
11471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard
11571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    public void setMaximum(int maximum) {
11671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        mMaximum = maximum;
11771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    }
11871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard
11971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    public void setDefaultValue(int defaultValue) {
12071f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        mDefaultValue = defaultValue;
12171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    }
12271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard
123235d2179374bec14040f20af91dc753e38ea3639John Hoford    @Override
12471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    public int getDefaultValue() {
12571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        return mDefaultValue;
12671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    }
12771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard
12871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    public int getPreviewValue() {
12971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        return mPreviewValue;
13071f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    }
13171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard
13271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    public void setPreviewValue(int previewValue) {
13371f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        mPreviewValue = previewValue;
13471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    }
1352562a98c156a55b51239fea383838a11a0292c0enicolasroard
136235d2179374bec14040f20af91dc753e38ea3639John Hoford    @Override
1372562a98c156a55b51239fea383838a11a0292c0enicolasroard    public String getStateRepresentation() {
13833de212ec780eaf2bc8d86908f07da33ea8dd7f2John Hoford        int val = getValue();
13933de212ec780eaf2bc8d86908f07da33ea8dd7f2John Hoford        return ((val > 0) ? "+" : "") + val;
1402562a98c156a55b51239fea383838a11a0292c0enicolasroard    }
141235d2179374bec14040f20af91dc753e38ea3639John Hoford
142235d2179374bec14040f20af91dc753e38ea3639John Hoford    @Override
143235d2179374bec14040f20af91dc753e38ea3639John Hoford    public String getParameterType(){
144235d2179374bec14040f20af91dc753e38ea3639John Hoford        return sParameterType;
145235d2179374bec14040f20af91dc753e38ea3639John Hoford    }
146235d2179374bec14040f20af91dc753e38ea3639John Hoford
147235d2179374bec14040f20af91dc753e38ea3639John Hoford    @Override
148235d2179374bec14040f20af91dc753e38ea3639John Hoford    public void setController(Control control) {
149235d2179374bec14040f20af91dc753e38ea3639John Hoford    }
150235d2179374bec14040f20af91dc753e38ea3639John Hoford
151235d2179374bec14040f20af91dc753e38ea3639John Hoford    @Override
152235d2179374bec14040f20af91dc753e38ea3639John Hoford    public String getValueString() {
153235d2179374bec14040f20af91dc753e38ea3639John Hoford        return getStateRepresentation();
154235d2179374bec14040f20af91dc753e38ea3639John Hoford    }
155235d2179374bec14040f20af91dc753e38ea3639John Hoford
156235d2179374bec14040f20af91dc753e38ea3639John Hoford    @Override
157235d2179374bec14040f20af91dc753e38ea3639John Hoford    public String getParameterName() {
158235d2179374bec14040f20af91dc753e38ea3639John Hoford        return getName();
159235d2179374bec14040f20af91dc753e38ea3639John Hoford    }
160d2f5fe607ee6d7b5f79862b495495e2f6024cdabJohn Hoford
161d2f5fe607ee6d7b5f79862b495495e2f6024cdabJohn Hoford    @Override
162d2f5fe607ee6d7b5f79862b495495e2f6024cdabJohn Hoford    public void setFilterView(FilterView editor) {
163d2f5fe607ee6d7b5f79862b495495e2f6024cdabJohn Hoford    }
164d2f5fe607ee6d7b5f79862b495495e2f6024cdabJohn Hoford
165d2f5fe607ee6d7b5f79862b495495e2f6024cdabJohn Hoford    @Override
166d2f5fe607ee6d7b5f79862b495495e2f6024cdabJohn Hoford    public void copyFrom(Parameter src) {
167d2f5fe607ee6d7b5f79862b495495e2f6024cdabJohn Hoford        useParametersFrom((FilterBasicRepresentation) src);
168d2f5fe607ee6d7b5f79862b495495e2f6024cdabJohn Hoford    }
16971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard}
170