FilterBasicRepresentation.java revision 235d2179374bec14040f20af91dc753e38ea3639
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;
21235d2179374bec14040f20af91dc753e38ea3639John Hofordimport com.android.gallery3d.filtershow.controller.ParameterInteger;
2271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard
23235d2179374bec14040f20af91dc753e38ea3639John Hofordpublic class FilterBasicRepresentation extends FilterRepresentation implements ParameterInteger {
2471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    private static final String LOGTAG = "FilterBasicRepresentation";
2571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    private int mMinimum;
2671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    private int mValue;
2771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    private int mMaximum;
2871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    private int mDefaultValue;
2971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    private int mPreviewValue;
3071f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard
3171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    public FilterBasicRepresentation(String name, int minimum, int value, int maximum) {
3271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        super(name);
3371f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        mMinimum = minimum;
3471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        mMaximum = maximum;
3571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        setValue(value);
3671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    }
3771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard
38235d2179374bec14040f20af91dc753e38ea3639John Hoford    @Override
3971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    public String toString() {
4071f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        return getName() + " : " + mMinimum + " < " + mValue + " < " + mMaximum;
4171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    }
4271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard
4371f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    @Override
4471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    public FilterRepresentation clone() throws CloneNotSupportedException {
4571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        FilterBasicRepresentation representation = (FilterBasicRepresentation) super.clone();
4671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        representation.setMinimum(getMinimum());
4771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        representation.setMaximum(getMaximum());
4871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        representation.setValue(getValue());
4971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        Log.v(LOGTAG, "cloning from <" + this + "> to <" + representation + ">");
5071f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        return representation;
5171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    }
5271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard
53235d2179374bec14040f20af91dc753e38ea3639John Hoford    @Override
5471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    public void useParametersFrom(FilterRepresentation a) {
5571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        if (a instanceof FilterBasicRepresentation) {
5671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard            FilterBasicRepresentation representation = (FilterBasicRepresentation) a;
5771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard            setMinimum(representation.getMinimum());
5871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard            setMaximum(representation.getMaximum());
5971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard            setValue(representation.getValue());
6071f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard            setDefaultValue(representation.getDefaultValue());
6171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard            setPreviewValue(representation.getPreviewValue());
6271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        }
6371f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    }
6471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard
6571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    @Override
6671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    public boolean equals(FilterRepresentation representation) {
67d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard        if (!super.equals(representation)) {
6871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard            return false;
6971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        }
7071f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        if (representation instanceof FilterBasicRepresentation) {
7171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard            FilterBasicRepresentation basic = (FilterBasicRepresentation) representation;
7271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard            if (basic.mMinimum == mMinimum
7371f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard                    && basic.mMaximum == mMaximum
7471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard                    && basic.mValue == mValue
7571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard                    && basic.mDefaultValue == mDefaultValue
7671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard                    && basic.mPreviewValue == mPreviewValue) {
7771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard                return true;
7871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard            }
7971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        }
8071f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        return false;
8171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    }
8271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard
83235d2179374bec14040f20af91dc753e38ea3639John Hoford    @Override
8471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    public int getMinimum() {
8571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        return mMinimum;
8671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    }
8771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard
8871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    public void setMinimum(int minimum) {
8971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        mMinimum = minimum;
9071f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    }
9171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard
92235d2179374bec14040f20af91dc753e38ea3639John Hoford    @Override
9371f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    public int getValue() {
9471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        return mValue;
9571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    }
9671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard
97235d2179374bec14040f20af91dc753e38ea3639John Hoford    @Override
9871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    public void setValue(int value) {
9971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        mValue = value;
10071f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        if (mValue < mMinimum) {
10171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard            mValue = mMinimum;
10271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        }
10371f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        if (mValue > mMaximum) {
10471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard            mValue = mMaximum;
10571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        }
10671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    }
10771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard
108235d2179374bec14040f20af91dc753e38ea3639John Hoford    @Override
10971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    public int getMaximum() {
11071f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        return mMaximum;
11171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    }
11271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard
11371f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    public void setMaximum(int maximum) {
11471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        mMaximum = maximum;
11571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    }
11671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard
11771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    public void setDefaultValue(int defaultValue) {
11871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        mDefaultValue = defaultValue;
11971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    }
12071f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard
121235d2179374bec14040f20af91dc753e38ea3639John Hoford    @Override
12271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    public int getDefaultValue() {
12371f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        return mDefaultValue;
12471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    }
12571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard
12671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    public int getPreviewValue() {
12771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        return mPreviewValue;
12871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    }
12971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard
13071f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    public void setPreviewValue(int previewValue) {
13171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        mPreviewValue = previewValue;
13271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    }
1332562a98c156a55b51239fea383838a11a0292c0enicolasroard
134235d2179374bec14040f20af91dc753e38ea3639John Hoford    @Override
1352562a98c156a55b51239fea383838a11a0292c0enicolasroard    public String getStateRepresentation() {
1362562a98c156a55b51239fea383838a11a0292c0enicolasroard        return "" + getValue();
1372562a98c156a55b51239fea383838a11a0292c0enicolasroard    }
138235d2179374bec14040f20af91dc753e38ea3639John Hoford
139235d2179374bec14040f20af91dc753e38ea3639John Hoford    @Override
140235d2179374bec14040f20af91dc753e38ea3639John Hoford    public String getParameterType(){
141235d2179374bec14040f20af91dc753e38ea3639John Hoford        return sParameterType;
142235d2179374bec14040f20af91dc753e38ea3639John Hoford    }
143235d2179374bec14040f20af91dc753e38ea3639John Hoford
144235d2179374bec14040f20af91dc753e38ea3639John Hoford    @Override
145235d2179374bec14040f20af91dc753e38ea3639John Hoford    public void setController(Control control) {
146235d2179374bec14040f20af91dc753e38ea3639John Hoford    }
147235d2179374bec14040f20af91dc753e38ea3639John Hoford
148235d2179374bec14040f20af91dc753e38ea3639John Hoford    @Override
149235d2179374bec14040f20af91dc753e38ea3639John Hoford    public String getValueString() {
150235d2179374bec14040f20af91dc753e38ea3639John Hoford        return getStateRepresentation();
151235d2179374bec14040f20af91dc753e38ea3639John Hoford    }
152235d2179374bec14040f20af91dc753e38ea3639John Hoford
153235d2179374bec14040f20af91dc753e38ea3639John Hoford    @Override
154235d2179374bec14040f20af91dc753e38ea3639John Hoford    public String getParameterName() {
155235d2179374bec14040f20af91dc753e38ea3639John Hoford        return getName();
156235d2179374bec14040f20af91dc753e38ea3639John Hoford    }
15771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard}
158