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; 34afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford public static final String SERIAL_NAME = "Name"; 35afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford public static final String SERIAL_VALUE = "Value"; 36502244165ab673f3d0b1d0c0288de4b010c5c5c9ztenghui private boolean mLogVerbose = Log.isLoggable(LOGTAG, Log.VERBOSE); 3771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard 3871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard public FilterBasicRepresentation(String name, int minimum, int value, int maximum) { 3971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard super(name); 4071f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard mMinimum = minimum; 4171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard mMaximum = maximum; 4271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard setValue(value); 4371f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 4471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard 45235d2179374bec14040f20af91dc753e38ea3639John Hoford @Override 4671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard public String toString() { 4771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard return getName() + " : " + mMinimum + " < " + mValue + " < " + mMaximum; 4871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 4971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard 5071f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard @Override 513f0034140c165b86fbaf5c0369f39431548308e9John Hoford public FilterRepresentation copy() { 523f0034140c165b86fbaf5c0369f39431548308e9John Hoford FilterBasicRepresentation representation = new FilterBasicRepresentation(getName(),0,0,0); 533f0034140c165b86fbaf5c0369f39431548308e9John Hoford copyAllParameters(representation); 5471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard return representation; 5571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 5671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard 57235d2179374bec14040f20af91dc753e38ea3639John Hoford @Override 583f0034140c165b86fbaf5c0369f39431548308e9John Hoford protected void copyAllParameters(FilterRepresentation representation) { 593f0034140c165b86fbaf5c0369f39431548308e9John Hoford super.copyAllParameters(representation); 603f0034140c165b86fbaf5c0369f39431548308e9John Hoford representation.useParametersFrom(this); 613f0034140c165b86fbaf5c0369f39431548308e9John Hoford } 623f0034140c165b86fbaf5c0369f39431548308e9John Hoford 633f0034140c165b86fbaf5c0369f39431548308e9John Hoford @Override 6471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard public void useParametersFrom(FilterRepresentation a) { 6571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard if (a instanceof FilterBasicRepresentation) { 6671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard FilterBasicRepresentation representation = (FilterBasicRepresentation) a; 6771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard setMinimum(representation.getMinimum()); 6871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard setMaximum(representation.getMaximum()); 6971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard setValue(representation.getValue()); 7071f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard setDefaultValue(representation.getDefaultValue()); 7171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard setPreviewValue(representation.getPreviewValue()); 7271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 7371f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 7471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard 7571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard @Override 7671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard public boolean equals(FilterRepresentation representation) { 77d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard if (!super.equals(representation)) { 7871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard return false; 7971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 8071f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard if (representation instanceof FilterBasicRepresentation) { 8171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard FilterBasicRepresentation basic = (FilterBasicRepresentation) representation; 8271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard if (basic.mMinimum == mMinimum 8371f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard && basic.mMaximum == mMaximum 8471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard && basic.mValue == mValue 8571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard && basic.mDefaultValue == mDefaultValue 8671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard && basic.mPreviewValue == mPreviewValue) { 8771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard return true; 8871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 8971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 9071f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard return false; 9171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 9271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard 93235d2179374bec14040f20af91dc753e38ea3639John Hoford @Override 9471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard public int getMinimum() { 9571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard return mMinimum; 9671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 9771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard 9871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard public void setMinimum(int minimum) { 9971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard mMinimum = minimum; 10071f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 10171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard 102235d2179374bec14040f20af91dc753e38ea3639John Hoford @Override 10371f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard public int getValue() { 10471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard return mValue; 10571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 10671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard 107235d2179374bec14040f20af91dc753e38ea3639John Hoford @Override 10871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard public void setValue(int value) { 10971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard mValue = value; 11071f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard if (mValue < mMinimum) { 11171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard mValue = mMinimum; 11271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 11371f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard if (mValue > mMaximum) { 11471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard mValue = mMaximum; 11571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 11671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 11771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard 118235d2179374bec14040f20af91dc753e38ea3639John Hoford @Override 11971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard public int getMaximum() { 12071f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard return mMaximum; 12171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 12271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard 12371f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard public void setMaximum(int maximum) { 12471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard mMaximum = maximum; 12571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 12671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard 12771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard public void setDefaultValue(int defaultValue) { 12871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard mDefaultValue = defaultValue; 12971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 13071f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard 131235d2179374bec14040f20af91dc753e38ea3639John Hoford @Override 13271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard public int getDefaultValue() { 13371f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard return mDefaultValue; 13471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 13571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard 13671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard public int getPreviewValue() { 13771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard return mPreviewValue; 13871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 13971f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard 14071f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard public void setPreviewValue(int previewValue) { 14171f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard mPreviewValue = previewValue; 14271f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard } 1432562a98c156a55b51239fea383838a11a0292c0enicolasroard 144235d2179374bec14040f20af91dc753e38ea3639John Hoford @Override 1452562a98c156a55b51239fea383838a11a0292c0enicolasroard public String getStateRepresentation() { 14633de212ec780eaf2bc8d86908f07da33ea8dd7f2John Hoford int val = getValue(); 14733de212ec780eaf2bc8d86908f07da33ea8dd7f2John Hoford return ((val > 0) ? "+" : "") + val; 1482562a98c156a55b51239fea383838a11a0292c0enicolasroard } 149235d2179374bec14040f20af91dc753e38ea3639John Hoford 150235d2179374bec14040f20af91dc753e38ea3639John Hoford @Override 151235d2179374bec14040f20af91dc753e38ea3639John Hoford public String getParameterType(){ 152235d2179374bec14040f20af91dc753e38ea3639John Hoford return sParameterType; 153235d2179374bec14040f20af91dc753e38ea3639John Hoford } 154235d2179374bec14040f20af91dc753e38ea3639John Hoford 155235d2179374bec14040f20af91dc753e38ea3639John Hoford @Override 156235d2179374bec14040f20af91dc753e38ea3639John Hoford public void setController(Control control) { 157235d2179374bec14040f20af91dc753e38ea3639John Hoford } 158235d2179374bec14040f20af91dc753e38ea3639John Hoford 159235d2179374bec14040f20af91dc753e38ea3639John Hoford @Override 160235d2179374bec14040f20af91dc753e38ea3639John Hoford public String getValueString() { 161235d2179374bec14040f20af91dc753e38ea3639John Hoford return getStateRepresentation(); 162235d2179374bec14040f20af91dc753e38ea3639John Hoford } 163235d2179374bec14040f20af91dc753e38ea3639John Hoford 164235d2179374bec14040f20af91dc753e38ea3639John Hoford @Override 165235d2179374bec14040f20af91dc753e38ea3639John Hoford public String getParameterName() { 166235d2179374bec14040f20af91dc753e38ea3639John Hoford return getName(); 167235d2179374bec14040f20af91dc753e38ea3639John Hoford } 168d2f5fe607ee6d7b5f79862b495495e2f6024cdabJohn Hoford 169d2f5fe607ee6d7b5f79862b495495e2f6024cdabJohn Hoford @Override 170d2f5fe607ee6d7b5f79862b495495e2f6024cdabJohn Hoford public void setFilterView(FilterView editor) { 171d2f5fe607ee6d7b5f79862b495495e2f6024cdabJohn Hoford } 172d2f5fe607ee6d7b5f79862b495495e2f6024cdabJohn Hoford 173d2f5fe607ee6d7b5f79862b495495e2f6024cdabJohn Hoford @Override 174d2f5fe607ee6d7b5f79862b495495e2f6024cdabJohn Hoford public void copyFrom(Parameter src) { 175d2f5fe607ee6d7b5f79862b495495e2f6024cdabJohn Hoford useParametersFrom((FilterBasicRepresentation) src); 176d2f5fe607ee6d7b5f79862b495495e2f6024cdabJohn Hoford } 177afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford 178afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford @Override 179afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford public String[][] serializeRepresentation() { 180afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford String[][] ret = { 181afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford {SERIAL_NAME , getName() }, 182afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford {SERIAL_VALUE , Integer.toString(mValue)}}; 183afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford return ret; 184afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford } 185afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford 186afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford @Override 187afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford public void deSerializeRepresentation(String[][] rep) { 188afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford super.deSerializeRepresentation(rep); 189afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford for (int i = 0; i < rep.length; i++) { 190afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford if (SERIAL_VALUE.equals(rep[i][0])) { 191afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford mValue = Integer.parseInt(rep[i][1]); 192afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford break; 193afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford } 194afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford } 195afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford } 19671f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard} 197