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