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 19502244165ab673f3d0b1d0c0288de4b010c5c5c9ztenghui 20502244165ab673f3d0b1d0c0288de4b010c5c5c9ztenghuiimport android.util.Log; 21502244165ab673f3d0b1d0c0288de4b010c5c5c9ztenghui 22235d2179374bec14040f20af91dc753e38ea3639John Hofordimport com.android.gallery3d.filtershow.controller.Control; 23d2f5fe607ee6d7b5f79862b495495e2f6024cdabJohn Hofordimport com.android.gallery3d.filtershow.controller.FilterView; 24d2f5fe607ee6d7b5f79862b495495e2f6024cdabJohn Hofordimport com.android.gallery3d.filtershow.controller.Parameter; 25235d2179374bec14040f20af91dc753e38ea3639John Hofordimport com.android.gallery3d.filtershow.controller.ParameterInteger; 2671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard 27235d2179374bec14040f20af91dc753e38ea3639John Hofordpublic class FilterBasicRepresentation extends FilterRepresentation implements ParameterInteger { 28502244165ab673f3d0b1d0c0288de4b010c5c5c9ztenghui private static final String LOGTAG = "FilterBasicRep"; 2971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard private int mMinimum; 3071f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard private int mValue; 3171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard private int mMaximum; 3271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard private int mDefaultValue; 3371f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard private int mPreviewValue; 34502244165ab673f3d0b1d0c0288de4b010c5c5c9ztenghui private boolean mLogVerbose = Log.isLoggable(LOGTAG, Log.VERBOSE); 3571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard 3671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard public FilterBasicRepresentation(String name, int minimum, int value, int maximum) { 3771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard super(name); 3871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard mMinimum = minimum; 3971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard mMaximum = maximum; 4071f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard setValue(value); 4171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 4271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard 43235d2179374bec14040f20af91dc753e38ea3639John Hoford @Override 4471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard public String toString() { 4571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard return getName() + " : " + mMinimum + " < " + mValue + " < " + mMaximum; 4671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 4771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard 4871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard @Override 4971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard public FilterRepresentation clone() throws CloneNotSupportedException { 5071f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard FilterBasicRepresentation representation = (FilterBasicRepresentation) super.clone(); 5171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard representation.setMinimum(getMinimum()); 5271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard representation.setMaximum(getMaximum()); 5371f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard representation.setValue(getValue()); 54502244165ab673f3d0b1d0c0288de4b010c5c5c9ztenghui if (mLogVerbose) { 55502244165ab673f3d0b1d0c0288de4b010c5c5c9ztenghui Log.v(LOGTAG, "cloning from <" + this + "> to <" + representation + ">"); 56502244165ab673f3d0b1d0c0288de4b010c5c5c9ztenghui } 5771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard return representation; 5871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 5971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard 60235d2179374bec14040f20af91dc753e38ea3639John Hoford @Override 6171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard public void useParametersFrom(FilterRepresentation a) { 6271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard if (a instanceof FilterBasicRepresentation) { 6371f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard FilterBasicRepresentation representation = (FilterBasicRepresentation) a; 6471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard setMinimum(representation.getMinimum()); 6571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard setMaximum(representation.getMaximum()); 6671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard setValue(representation.getValue()); 6771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard setDefaultValue(representation.getDefaultValue()); 6871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard setPreviewValue(representation.getPreviewValue()); 6971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 7071f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 7171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard 7271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard @Override 7371f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard public boolean equals(FilterRepresentation representation) { 74d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard if (!super.equals(representation)) { 7571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard return false; 7671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 7771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard if (representation instanceof FilterBasicRepresentation) { 7871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard FilterBasicRepresentation basic = (FilterBasicRepresentation) representation; 7971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard if (basic.mMinimum == mMinimum 8071f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard && basic.mMaximum == mMaximum 8171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard && basic.mValue == mValue 8271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard && basic.mDefaultValue == mDefaultValue 8371f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard && basic.mPreviewValue == mPreviewValue) { 8471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard return true; 8571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 8671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 8771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard return false; 8871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 8971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard 90235d2179374bec14040f20af91dc753e38ea3639John Hoford @Override 9171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard public int getMinimum() { 9271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard return mMinimum; 9371f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 9471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard 9571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard public void setMinimum(int minimum) { 9671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard mMinimum = minimum; 9771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 9871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard 99235d2179374bec14040f20af91dc753e38ea3639John Hoford @Override 10071f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard public int getValue() { 10171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard return mValue; 10271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 10371f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard 104235d2179374bec14040f20af91dc753e38ea3639John Hoford @Override 10571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard public void setValue(int value) { 10671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard mValue = value; 10771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard if (mValue < mMinimum) { 10871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard mValue = mMinimum; 10971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 11071f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard if (mValue > mMaximum) { 11171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard mValue = mMaximum; 11271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 11371f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 11471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard 115235d2179374bec14040f20af91dc753e38ea3639John Hoford @Override 11671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard public int getMaximum() { 11771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard return mMaximum; 11871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 11971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard 12071f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard public void setMaximum(int maximum) { 12171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard mMaximum = maximum; 12271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 12371f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard 12471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard public void setDefaultValue(int defaultValue) { 12571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard mDefaultValue = defaultValue; 12671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 12771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard 128235d2179374bec14040f20af91dc753e38ea3639John Hoford @Override 12971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard public int getDefaultValue() { 13071f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard return mDefaultValue; 13171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 13271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard 13371f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard public int getPreviewValue() { 13471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard return mPreviewValue; 13571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 13671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard 13771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard public void setPreviewValue(int previewValue) { 13871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard mPreviewValue = previewValue; 13971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 1402562a98c156a55b51239fea383838a11a0292c0enicolasroard 141235d2179374bec14040f20af91dc753e38ea3639John Hoford @Override 1422562a98c156a55b51239fea383838a11a0292c0enicolasroard public String getStateRepresentation() { 14333de212ec780eaf2bc8d86908f07da33ea8dd7f2John Hoford int val = getValue(); 14433de212ec780eaf2bc8d86908f07da33ea8dd7f2John Hoford return ((val > 0) ? "+" : "") + val; 1452562a98c156a55b51239fea383838a11a0292c0enicolasroard } 146235d2179374bec14040f20af91dc753e38ea3639John Hoford 147235d2179374bec14040f20af91dc753e38ea3639John Hoford @Override 148235d2179374bec14040f20af91dc753e38ea3639John Hoford public String getParameterType(){ 149235d2179374bec14040f20af91dc753e38ea3639John Hoford return sParameterType; 150235d2179374bec14040f20af91dc753e38ea3639John Hoford } 151235d2179374bec14040f20af91dc753e38ea3639John Hoford 152235d2179374bec14040f20af91dc753e38ea3639John Hoford @Override 153235d2179374bec14040f20af91dc753e38ea3639John Hoford public void setController(Control control) { 154235d2179374bec14040f20af91dc753e38ea3639John Hoford } 155235d2179374bec14040f20af91dc753e38ea3639John Hoford 156235d2179374bec14040f20af91dc753e38ea3639John Hoford @Override 157235d2179374bec14040f20af91dc753e38ea3639John Hoford public String getValueString() { 158235d2179374bec14040f20af91dc753e38ea3639John Hoford return getStateRepresentation(); 159235d2179374bec14040f20af91dc753e38ea3639John Hoford } 160235d2179374bec14040f20af91dc753e38ea3639John Hoford 161235d2179374bec14040f20af91dc753e38ea3639John Hoford @Override 162235d2179374bec14040f20af91dc753e38ea3639John Hoford public String getParameterName() { 163235d2179374bec14040f20af91dc753e38ea3639John Hoford return getName(); 164235d2179374bec14040f20af91dc753e38ea3639John Hoford } 165d2f5fe607ee6d7b5f79862b495495e2f6024cdabJohn Hoford 166d2f5fe607ee6d7b5f79862b495495e2f6024cdabJohn Hoford @Override 167d2f5fe607ee6d7b5f79862b495495e2f6024cdabJohn Hoford public void setFilterView(FilterView editor) { 168d2f5fe607ee6d7b5f79862b495495e2f6024cdabJohn Hoford } 169d2f5fe607ee6d7b5f79862b495495e2f6024cdabJohn Hoford 170d2f5fe607ee6d7b5f79862b495495e2f6024cdabJohn Hoford @Override 171d2f5fe607ee6d7b5f79862b495495e2f6024cdabJohn Hoford public void copyFrom(Parameter src) { 172d2f5fe607ee6d7b5f79862b495495e2f6024cdabJohn Hoford useParametersFrom((FilterBasicRepresentation) src); 173d2f5fe607ee6d7b5f79862b495495e2f6024cdabJohn Hoford } 17471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard} 175