192e387187a872b3b0986b378954eb611aa83fdeanicolasroard/*
292e387187a872b3b0986b378954eb611aa83fdeanicolasroard * Copyright (C) 2013 The Android Open Source Project
392e387187a872b3b0986b378954eb611aa83fdeanicolasroard *
492e387187a872b3b0986b378954eb611aa83fdeanicolasroard * Licensed under the Apache License, Version 2.0 (the "License");
592e387187a872b3b0986b378954eb611aa83fdeanicolasroard * you may not use this file except in compliance with the License.
692e387187a872b3b0986b378954eb611aa83fdeanicolasroard * You may obtain a copy of the License at
792e387187a872b3b0986b378954eb611aa83fdeanicolasroard *
892e387187a872b3b0986b378954eb611aa83fdeanicolasroard *      http://www.apache.org/licenses/LICENSE-2.0
992e387187a872b3b0986b378954eb611aa83fdeanicolasroard *
1092e387187a872b3b0986b378954eb611aa83fdeanicolasroard * Unless required by applicable law or agreed to in writing, software
1192e387187a872b3b0986b378954eb611aa83fdeanicolasroard * distributed under the License is distributed on an "AS IS" BASIS,
1292e387187a872b3b0986b378954eb611aa83fdeanicolasroard * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1392e387187a872b3b0986b378954eb611aa83fdeanicolasroard * See the License for the specific language governing permissions and
1492e387187a872b3b0986b378954eb611aa83fdeanicolasroard * limitations under the License.
1592e387187a872b3b0986b378954eb611aa83fdeanicolasroard */
1692e387187a872b3b0986b378954eb611aa83fdeanicolasroard
1792e387187a872b3b0986b378954eb611aa83fdeanicolasroardpackage com.android.gallery3d.filtershow.filters;
1892e387187a872b3b0986b378954eb611aa83fdeanicolasroard
196900cad45d240c9a54b92991538b6a33652e766cnicolasroardimport com.android.gallery3d.R;
206900cad45d240c9a54b92991538b6a33652e766cnicolasroardimport com.android.gallery3d.filtershow.editors.ImageOnlyEditor;
216900cad45d240c9a54b92991538b6a33652e766cnicolasroard
2292e387187a872b3b0986b378954eb611aa83fdeanicolasroardpublic class FilterImageBorderRepresentation extends FilterRepresentation {
2392e387187a872b3b0986b378954eb611aa83fdeanicolasroard    private int mDrawableResource = 0;
2492e387187a872b3b0986b378954eb611aa83fdeanicolasroard
25588c30c74178bc399b043a5401f0c1f93ae22378nicolasroard    public FilterImageBorderRepresentation(int drawableResource) {
2692e387187a872b3b0986b378954eb611aa83fdeanicolasroard        super("ImageBorder");
2792e387187a872b3b0986b378954eb611aa83fdeanicolasroard        setFilterClass(ImageFilterBorder.class);
283cb106ddd7ad0f8494ac9c7a33660831c1694295Ruben Brunk        mDrawableResource = drawableResource;
293cb106ddd7ad0f8494ac9c7a33660831c1694295Ruben Brunk        setFilterType(FilterRepresentation.TYPE_BORDER);
306900cad45d240c9a54b92991538b6a33652e766cnicolasroard        setTextId(R.string.borders);
316900cad45d240c9a54b92991538b6a33652e766cnicolasroard        setEditorId(ImageOnlyEditor.ID);
326900cad45d240c9a54b92991538b6a33652e766cnicolasroard        setShowParameterValue(false);
3392e387187a872b3b0986b378954eb611aa83fdeanicolasroard    }
3492e387187a872b3b0986b378954eb611aa83fdeanicolasroard
3592e387187a872b3b0986b378954eb611aa83fdeanicolasroard    public String toString() {
3692e387187a872b3b0986b378954eb611aa83fdeanicolasroard        return "FilterBorder: " + getName();
3792e387187a872b3b0986b378954eb611aa83fdeanicolasroard    }
3892e387187a872b3b0986b378954eb611aa83fdeanicolasroard
3992e387187a872b3b0986b378954eb611aa83fdeanicolasroard    @Override
403f0034140c165b86fbaf5c0369f39431548308e9John Hoford    public FilterRepresentation copy() {
413f0034140c165b86fbaf5c0369f39431548308e9John Hoford        FilterImageBorderRepresentation representation =
423f0034140c165b86fbaf5c0369f39431548308e9John Hoford                new FilterImageBorderRepresentation(mDrawableResource);
433f0034140c165b86fbaf5c0369f39431548308e9John Hoford        copyAllParameters(representation);
4492e387187a872b3b0986b378954eb611aa83fdeanicolasroard        return representation;
4592e387187a872b3b0986b378954eb611aa83fdeanicolasroard    }
4692e387187a872b3b0986b378954eb611aa83fdeanicolasroard
473f0034140c165b86fbaf5c0369f39431548308e9John Hoford    @Override
483f0034140c165b86fbaf5c0369f39431548308e9John Hoford    protected void copyAllParameters(FilterRepresentation representation) {
493f0034140c165b86fbaf5c0369f39431548308e9John Hoford        super.copyAllParameters(representation);
503f0034140c165b86fbaf5c0369f39431548308e9John Hoford        representation.useParametersFrom(this);
513f0034140c165b86fbaf5c0369f39431548308e9John Hoford    }
523f0034140c165b86fbaf5c0369f39431548308e9John Hoford
5392e387187a872b3b0986b378954eb611aa83fdeanicolasroard    public void useParametersFrom(FilterRepresentation a) {
5492e387187a872b3b0986b378954eb611aa83fdeanicolasroard        if (a instanceof FilterImageBorderRepresentation) {
5592e387187a872b3b0986b378954eb611aa83fdeanicolasroard            FilterImageBorderRepresentation representation = (FilterImageBorderRepresentation) a;
5692e387187a872b3b0986b378954eb611aa83fdeanicolasroard            setName(representation.getName());
5792e387187a872b3b0986b378954eb611aa83fdeanicolasroard            setDrawableResource(representation.getDrawableResource());
5892e387187a872b3b0986b378954eb611aa83fdeanicolasroard        }
5992e387187a872b3b0986b378954eb611aa83fdeanicolasroard    }
6092e387187a872b3b0986b378954eb611aa83fdeanicolasroard
6192e387187a872b3b0986b378954eb611aa83fdeanicolasroard    @Override
6292e387187a872b3b0986b378954eb611aa83fdeanicolasroard    public boolean equals(FilterRepresentation representation) {
6392e387187a872b3b0986b378954eb611aa83fdeanicolasroard        if (!super.equals(representation)) {
6492e387187a872b3b0986b378954eb611aa83fdeanicolasroard            return false;
6592e387187a872b3b0986b378954eb611aa83fdeanicolasroard        }
6692e387187a872b3b0986b378954eb611aa83fdeanicolasroard        if (representation instanceof FilterImageBorderRepresentation) {
6792e387187a872b3b0986b378954eb611aa83fdeanicolasroard            FilterImageBorderRepresentation border = (FilterImageBorderRepresentation) representation;
6892e387187a872b3b0986b378954eb611aa83fdeanicolasroard            if (border.mDrawableResource == mDrawableResource) {
6992e387187a872b3b0986b378954eb611aa83fdeanicolasroard                return true;
7092e387187a872b3b0986b378954eb611aa83fdeanicolasroard            }
7192e387187a872b3b0986b378954eb611aa83fdeanicolasroard        }
7292e387187a872b3b0986b378954eb611aa83fdeanicolasroard        return false;
7392e387187a872b3b0986b378954eb611aa83fdeanicolasroard    }
7492e387187a872b3b0986b378954eb611aa83fdeanicolasroard
756900cad45d240c9a54b92991538b6a33652e766cnicolasroard    @Override
766900cad45d240c9a54b92991538b6a33652e766cnicolasroard    public int getTextId() {
7733de212ec780eaf2bc8d86908f07da33ea8dd7f2John Hoford        return R.string.none;
786900cad45d240c9a54b92991538b6a33652e766cnicolasroard    }
796900cad45d240c9a54b92991538b6a33652e766cnicolasroard
80c9ca6d1eb85a71b7667f4c25d879e78cce16ac4cztenghui    public boolean allowsSingleInstanceOnly() {
8192e387187a872b3b0986b378954eb611aa83fdeanicolasroard        return true;
8292e387187a872b3b0986b378954eb611aa83fdeanicolasroard    }
8392e387187a872b3b0986b378954eb611aa83fdeanicolasroard
8492e387187a872b3b0986b378954eb611aa83fdeanicolasroard    public int getDrawableResource() {
8592e387187a872b3b0986b378954eb611aa83fdeanicolasroard        return mDrawableResource;
8692e387187a872b3b0986b378954eb611aa83fdeanicolasroard    }
8792e387187a872b3b0986b378954eb611aa83fdeanicolasroard
8892e387187a872b3b0986b378954eb611aa83fdeanicolasroard    public void setDrawableResource(int drawableResource) {
8992e387187a872b3b0986b378954eb611aa83fdeanicolasroard        mDrawableResource = drawableResource;
9092e387187a872b3b0986b378954eb611aa83fdeanicolasroard    }
9192e387187a872b3b0986b378954eb611aa83fdeanicolasroard}
92