FilterFxRepresentation.java revision 8ad8047fe862a1c6547e2aaf4bec73c20b6cbaec
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 SERIALIZATION_NAME = "LUT3D"; 23afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford private static final String LOGTAG = "FilterFxRepresentation"; 2441a03af3dec8915b5055570ad0631071346da40fnicolasroard // TODO: When implementing serialization, we should find a unique way of 2541a03af3dec8915b5055570ad0631071346da40fnicolasroard // specifying bitmaps / names (the resource IDs being random) 26d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard private int mBitmapResource = 0; 27d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard private int mNameResource = 0; 28d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard 29d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard public FilterFxRepresentation(String name, int bitmapResource, int nameResource) { 30d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard super(name); 318ad8047fe862a1c6547e2aaf4bec73c20b6cbaecztenghui setSerializationName(SERIALIZATION_NAME + "_" + name); 32afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford 33d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard mBitmapResource = bitmapResource; 34d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard mNameResource = nameResource; 35d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard setFilterClass(ImageFilterFx.class); 36f60760478ec7c78446be0e0c6bc5502d1557974cnicolasroard setPriority(FilterRepresentation.TYPE_FX); 376900cad45d240c9a54b92991538b6a33652e766cnicolasroard setTextId(nameResource); 386900cad45d240c9a54b92991538b6a33652e766cnicolasroard setEditorId(ImageOnlyEditor.ID); 396900cad45d240c9a54b92991538b6a33652e766cnicolasroard setShowEditingControls(false); 406900cad45d240c9a54b92991538b6a33652e766cnicolasroard setShowParameterValue(false); 416900cad45d240c9a54b92991538b6a33652e766cnicolasroard setShowUtilityPanel(false); 42e5498da0262fc836738aad63ea30286d8afa643cnicolasroard setSupportsPartialRendering(true); 43d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard } 44d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard 458ad8047fe862a1c6547e2aaf4bec73c20b6cbaecztenghui @Override 46d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard public String toString() { 478d2c7ee02c8fde53effc787c172b10b14ae34d42nicolasroard return "FilterFx: " + hashCode() + " : " + getName() + " bitmap rsc: " + mBitmapResource; 48d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard } 49d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard 50d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard @Override 518d2c7ee02c8fde53effc787c172b10b14ae34d42nicolasroard public synchronized FilterRepresentation clone() throws CloneNotSupportedException { 52d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard FilterFxRepresentation representation = (FilterFxRepresentation) super.clone(); 53d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard representation.setName(getName()); 54d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard representation.setBitmapResource(getBitmapResource()); 55d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard representation.setNameResource(getNameResource()); 56d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard return representation; 57d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard } 58d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard 598ad8047fe862a1c6547e2aaf4bec73c20b6cbaecztenghui @Override 608d2c7ee02c8fde53effc787c172b10b14ae34d42nicolasroard public synchronized void useParametersFrom(FilterRepresentation a) { 61d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard if (a instanceof FilterFxRepresentation) { 62d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard FilterFxRepresentation representation = (FilterFxRepresentation) a; 63d0bab8c396b0b10fdfd07a9d4fccf969d8d46747nicolasroard setName(representation.getName()); 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 938d2c7ee02c8fde53effc787c172b10b14ae34d42nicolasroard public boolean allowsMultipleInstances() { 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