FilterFxRepresentation.java revision 3f0034140c165b86fbaf5c0369f39431548308e9
1d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard/* 2d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard * Copyright (C) 2013 The Android Open Source Project 3d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard * 4d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard * Licensed under the Apache License, Version 2.0 (the "License"); 5d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard * you may not use this file except in compliance with the License. 6d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard * You may obtain a copy of the License at 7d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard * 8d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard * http://www.apache.org/licenses/LICENSE-2.0 9d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard * 10d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard * Unless required by applicable law or agreed to in writing, software 11d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard * distributed under the License is distributed on an "AS IS" BASIS, 12d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard * See the License for the specific language governing permissions and 14d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard * limitations under the License. 15d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard */ 16d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard 17d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroardpackage com.android.gallery3d.filtershow.filters; 18d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard 196900cad45d240c9a54b92991538b6a33652e766cnicolasroardimport com.android.gallery3d.filtershow.editors.ImageOnlyEditor; 20d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard 21d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroardpublic class FilterFxRepresentation extends FilterRepresentation { 22afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford private static final String LOGTAG = "FilterFxRepresentation"; 2341a03af3dec8915b5055570ad0631071346da40fnicolasroard // TODO: When implementing serialization, we should find a unique way of 2441a03af3dec8915b5055570ad0631071346da40fnicolasroard // specifying bitmaps / names (the resource IDs being random) 25d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard private int mBitmapResource = 0; 26d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard private int mNameResource = 0; 27d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard 28d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard public FilterFxRepresentation(String name, int bitmapResource, int nameResource) { 29d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard super(name); 303cb106ddd7ad0f8494ac9c7a33660831c1694295Ruben Brunk setFilterClass(ImageFilterFx.class); 31d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard mBitmapResource = bitmapResource; 32d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard mNameResource = nameResource; 333cb106ddd7ad0f8494ac9c7a33660831c1694295Ruben Brunk setFilterType(FilterRepresentation.TYPE_FX); 346900cad45d240c9a54b92991538b6a33652e766cnicolasroard setTextId(nameResource); 356900cad45d240c9a54b92991538b6a33652e766cnicolasroard setEditorId(ImageOnlyEditor.ID); 366900cad45d240c9a54b92991538b6a33652e766cnicolasroard setShowParameterValue(false); 37e5498da0262fc836738aad63ea30286d8afa643cnicolasroard setSupportsPartialRendering(true); 38d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard } 39d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard 408ad8047fe862a1c6547e2aaf4bec73c20b6cbaecztenghui @Override 41d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard public String toString() { 428d2c7ee02c8fde53effc787c172b10b14ae34d42nicolasroard return "FilterFx: " + hashCode() + " : " + getName() + " bitmap rsc: " + mBitmapResource; 43d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard } 44d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard 45d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard @Override 463f0034140c165b86fbaf5c0369f39431548308e9John Hoford public FilterRepresentation copy() { 473f0034140c165b86fbaf5c0369f39431548308e9John Hoford FilterFxRepresentation representation = new FilterFxRepresentation(getName(),0,0); 483f0034140c165b86fbaf5c0369f39431548308e9John Hoford copyAllParameters(representation); 49d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard return representation; 50d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard } 51d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard 528ad8047fe862a1c6547e2aaf4bec73c20b6cbaecztenghui @Override 533f0034140c165b86fbaf5c0369f39431548308e9John Hoford protected void copyAllParameters(FilterRepresentation representation) { 543f0034140c165b86fbaf5c0369f39431548308e9John Hoford super.copyAllParameters(representation); 553f0034140c165b86fbaf5c0369f39431548308e9John Hoford representation.useParametersFrom(this); 563f0034140c165b86fbaf5c0369f39431548308e9John Hoford } 573f0034140c165b86fbaf5c0369f39431548308e9John Hoford 583f0034140c165b86fbaf5c0369f39431548308e9John Hoford @Override 598d2c7ee02c8fde53effc787c172b10b14ae34d42nicolasroard public synchronized void useParametersFrom(FilterRepresentation a) { 60d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard if (a instanceof FilterFxRepresentation) { 61d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard FilterFxRepresentation representation = (FilterFxRepresentation) a; 62d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard setName(representation.getName()); 63667762f9381190c8a1d1c66bbaad15b680bb24b5ztenghui setSerializationName(representation.getSerializationName()); 64d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard setBitmapResource(representation.getBitmapResource()); 65d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard setNameResource(representation.getNameResource()); 66d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard } 67d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard } 68d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard 69d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard @Override 70d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard public boolean equals(FilterRepresentation representation) { 71d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard if (!super.equals(representation)) { 72d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard return false; 73d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard } 74d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard if (representation instanceof FilterFxRepresentation) { 75d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard FilterFxRepresentation fx = (FilterFxRepresentation) representation; 76d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard if (fx.mNameResource == mNameResource 77d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard && fx.mBitmapResource == mBitmapResource) { 78d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard return true; 79d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard } 80d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard } 81d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard return false; 82d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard } 83d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard 848ad8047fe862a1c6547e2aaf4bec73c20b6cbaecztenghui @Override 858d2c7ee02c8fde53effc787c172b10b14ae34d42nicolasroard public boolean same(FilterRepresentation representation) { 868d2c7ee02c8fde53effc787c172b10b14ae34d42nicolasroard if (!super.same(representation)) { 878d2c7ee02c8fde53effc787c172b10b14ae34d42nicolasroard return false; 888d2c7ee02c8fde53effc787c172b10b14ae34d42nicolasroard } 898d2c7ee02c8fde53effc787c172b10b14ae34d42nicolasroard return equals(representation); 90d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard } 91d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard 928ad8047fe862a1c6547e2aaf4bec73c20b6cbaecztenghui @Override 93c9ca6d1eb85a71b7667f4c25d879e78cce16ac4cztenghui public boolean allowsSingleInstanceOnly() { 948d2c7ee02c8fde53effc787c172b10b14ae34d42nicolasroard return true; 95d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard } 96d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard 97d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard public int getNameResource() { 98d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard return mNameResource; 99d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard } 100d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard 101d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard public void setNameResource(int nameResource) { 102d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard mNameResource = nameResource; 103d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard } 104d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard 105d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard public int getBitmapResource() { 106d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard return mBitmapResource; 107d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard } 108d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard 109d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard public void setBitmapResource(int bitmapResource) { 110d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard mBitmapResource = bitmapResource; 111d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard } 112d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard} 113