FilterColorBorderRepresentation.java revision c9ca6d1eb85a71b7667f4c25d879e78cce16ac4c
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 FilterColorBorderRepresentation extends FilterRepresentation {
2392e387187a872b3b0986b378954eb611aa83fdeanicolasroard    private int mColor;
2492e387187a872b3b0986b378954eb611aa83fdeanicolasroard    private int mBorderSize;
2592e387187a872b3b0986b378954eb611aa83fdeanicolasroard    private int mBorderRadius;
2692e387187a872b3b0986b378954eb611aa83fdeanicolasroard
2792e387187a872b3b0986b378954eb611aa83fdeanicolasroard    public FilterColorBorderRepresentation(int color, int size, int radius) {
2892e387187a872b3b0986b378954eb611aa83fdeanicolasroard        super("ColorBorder");
2992e387187a872b3b0986b378954eb611aa83fdeanicolasroard        mColor = color;
3092e387187a872b3b0986b378954eb611aa83fdeanicolasroard        mBorderSize = size;
3192e387187a872b3b0986b378954eb611aa83fdeanicolasroard        mBorderRadius = radius;
323cb106ddd7ad0f8494ac9c7a33660831c1694295Ruben Brunk        setFilterType(FilterRepresentation.TYPE_BORDER);
336900cad45d240c9a54b92991538b6a33652e766cnicolasroard        setTextId(R.string.borders);
346900cad45d240c9a54b92991538b6a33652e766cnicolasroard        setEditorId(ImageOnlyEditor.ID);
356900cad45d240c9a54b92991538b6a33652e766cnicolasroard        setShowParameterValue(false);
3692e387187a872b3b0986b378954eb611aa83fdeanicolasroard    }
3792e387187a872b3b0986b378954eb611aa83fdeanicolasroard
3892e387187a872b3b0986b378954eb611aa83fdeanicolasroard    public String toString() {
3992e387187a872b3b0986b378954eb611aa83fdeanicolasroard        return "FilterBorder: " + getName();
4092e387187a872b3b0986b378954eb611aa83fdeanicolasroard    }
4192e387187a872b3b0986b378954eb611aa83fdeanicolasroard
4292e387187a872b3b0986b378954eb611aa83fdeanicolasroard    @Override
4392e387187a872b3b0986b378954eb611aa83fdeanicolasroard    public FilterRepresentation clone() throws CloneNotSupportedException {
443cb106ddd7ad0f8494ac9c7a33660831c1694295Ruben Brunk        setFilterClass(ImageFilterParametricBorder.class);
4592e387187a872b3b0986b378954eb611aa83fdeanicolasroard        FilterColorBorderRepresentation representation = (FilterColorBorderRepresentation) super.clone();
4692e387187a872b3b0986b378954eb611aa83fdeanicolasroard        representation.setName(getName());
4792e387187a872b3b0986b378954eb611aa83fdeanicolasroard        representation.setColor(getColor());
4892e387187a872b3b0986b378954eb611aa83fdeanicolasroard        representation.setBorderSize(getBorderSize());
4992e387187a872b3b0986b378954eb611aa83fdeanicolasroard        representation.setBorderRadius(getBorderRadius());
5092e387187a872b3b0986b378954eb611aa83fdeanicolasroard        return representation;
5192e387187a872b3b0986b378954eb611aa83fdeanicolasroard    }
5292e387187a872b3b0986b378954eb611aa83fdeanicolasroard
5392e387187a872b3b0986b378954eb611aa83fdeanicolasroard    public void useParametersFrom(FilterRepresentation a) {
5492e387187a872b3b0986b378954eb611aa83fdeanicolasroard        if (a instanceof FilterColorBorderRepresentation) {
5592e387187a872b3b0986b378954eb611aa83fdeanicolasroard            FilterColorBorderRepresentation representation = (FilterColorBorderRepresentation) a;
5692e387187a872b3b0986b378954eb611aa83fdeanicolasroard            setName(representation.getName());
5792e387187a872b3b0986b378954eb611aa83fdeanicolasroard            setColor(representation.getColor());
5892e387187a872b3b0986b378954eb611aa83fdeanicolasroard            setBorderSize(representation.getBorderSize());
5992e387187a872b3b0986b378954eb611aa83fdeanicolasroard            setBorderRadius(representation.getBorderRadius());
6092e387187a872b3b0986b378954eb611aa83fdeanicolasroard        }
6192e387187a872b3b0986b378954eb611aa83fdeanicolasroard    }
6292e387187a872b3b0986b378954eb611aa83fdeanicolasroard
6392e387187a872b3b0986b378954eb611aa83fdeanicolasroard    @Override
6492e387187a872b3b0986b378954eb611aa83fdeanicolasroard    public boolean equals(FilterRepresentation representation) {
6592e387187a872b3b0986b378954eb611aa83fdeanicolasroard        if (!super.equals(representation)) {
6692e387187a872b3b0986b378954eb611aa83fdeanicolasroard            return false;
6792e387187a872b3b0986b378954eb611aa83fdeanicolasroard        }
6892e387187a872b3b0986b378954eb611aa83fdeanicolasroard        if (representation instanceof FilterColorBorderRepresentation) {
6992e387187a872b3b0986b378954eb611aa83fdeanicolasroard            FilterColorBorderRepresentation border = (FilterColorBorderRepresentation) representation;
7092e387187a872b3b0986b378954eb611aa83fdeanicolasroard            if (border.mColor == mColor
7192e387187a872b3b0986b378954eb611aa83fdeanicolasroard                    && border.mBorderSize == mBorderSize
7292e387187a872b3b0986b378954eb611aa83fdeanicolasroard                    && border.mBorderRadius == mBorderRadius) {
7392e387187a872b3b0986b378954eb611aa83fdeanicolasroard                return true;
7492e387187a872b3b0986b378954eb611aa83fdeanicolasroard            }
7592e387187a872b3b0986b378954eb611aa83fdeanicolasroard        }
7692e387187a872b3b0986b378954eb611aa83fdeanicolasroard        return false;
7792e387187a872b3b0986b378954eb611aa83fdeanicolasroard    }
7892e387187a872b3b0986b378954eb611aa83fdeanicolasroard
79c9ca6d1eb85a71b7667f4c25d879e78cce16ac4cztenghui    public boolean allowsSingleInstanceOnly() {
8092e387187a872b3b0986b378954eb611aa83fdeanicolasroard        return true;
8192e387187a872b3b0986b378954eb611aa83fdeanicolasroard    }
8292e387187a872b3b0986b378954eb611aa83fdeanicolasroard
836900cad45d240c9a54b92991538b6a33652e766cnicolasroard    @Override
846900cad45d240c9a54b92991538b6a33652e766cnicolasroard    public int getTextId() {
856900cad45d240c9a54b92991538b6a33652e766cnicolasroard        return R.string.borders;
866900cad45d240c9a54b92991538b6a33652e766cnicolasroard    }
876900cad45d240c9a54b92991538b6a33652e766cnicolasroard
8892e387187a872b3b0986b378954eb611aa83fdeanicolasroard    public int getColor() {
8992e387187a872b3b0986b378954eb611aa83fdeanicolasroard        return mColor;
9092e387187a872b3b0986b378954eb611aa83fdeanicolasroard    }
9192e387187a872b3b0986b378954eb611aa83fdeanicolasroard
9292e387187a872b3b0986b378954eb611aa83fdeanicolasroard    public void setColor(int color) {
9392e387187a872b3b0986b378954eb611aa83fdeanicolasroard        mColor = color;
9492e387187a872b3b0986b378954eb611aa83fdeanicolasroard    }
9592e387187a872b3b0986b378954eb611aa83fdeanicolasroard
9692e387187a872b3b0986b378954eb611aa83fdeanicolasroard    public int getBorderSize() {
9792e387187a872b3b0986b378954eb611aa83fdeanicolasroard        return mBorderSize;
9892e387187a872b3b0986b378954eb611aa83fdeanicolasroard    }
9992e387187a872b3b0986b378954eb611aa83fdeanicolasroard
10092e387187a872b3b0986b378954eb611aa83fdeanicolasroard    public void setBorderSize(int borderSize) {
10192e387187a872b3b0986b378954eb611aa83fdeanicolasroard        mBorderSize = borderSize;
10292e387187a872b3b0986b378954eb611aa83fdeanicolasroard    }
10392e387187a872b3b0986b378954eb611aa83fdeanicolasroard
10492e387187a872b3b0986b378954eb611aa83fdeanicolasroard    public int getBorderRadius() {
10592e387187a872b3b0986b378954eb611aa83fdeanicolasroard        return mBorderRadius;
10692e387187a872b3b0986b378954eb611aa83fdeanicolasroard    }
10792e387187a872b3b0986b378954eb611aa83fdeanicolasroard
10892e387187a872b3b0986b378954eb611aa83fdeanicolasroard    public void setBorderRadius(int borderRadius) {
10992e387187a872b3b0986b378954eb611aa83fdeanicolasroard        mBorderRadius = borderRadius;
11092e387187a872b3b0986b378954eb611aa83fdeanicolasroard    }
11192e387187a872b3b0986b378954eb611aa83fdeanicolasroard}
112