FilterColorBorderRepresentation.java revision 6900cad45d240c9a54b92991538b6a33652e766c
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;
3292e387187a872b3b0986b378954eb611aa83fdeanicolasroard        setFilterClass(ImageFilterParametricBorder.class);
33cef6ad5d4a60a6e2960f7f72de624d5e60b3908anicolasroard        setPriority(FilterRepresentation.TYPE_BORDER);
346900cad45d240c9a54b92991538b6a33652e766cnicolasroard        setTextId(R.string.borders);
356900cad45d240c9a54b92991538b6a33652e766cnicolasroard        setEditorId(ImageOnlyEditor.ID);
366900cad45d240c9a54b92991538b6a33652e766cnicolasroard        setShowEditingControls(false);
376900cad45d240c9a54b92991538b6a33652e766cnicolasroard        setShowParameterValue(false);
386900cad45d240c9a54b92991538b6a33652e766cnicolasroard        setShowUtilityPanel(false);
3992e387187a872b3b0986b378954eb611aa83fdeanicolasroard    }
4092e387187a872b3b0986b378954eb611aa83fdeanicolasroard
4192e387187a872b3b0986b378954eb611aa83fdeanicolasroard    public String toString() {
4292e387187a872b3b0986b378954eb611aa83fdeanicolasroard        return "FilterBorder: " + getName();
4392e387187a872b3b0986b378954eb611aa83fdeanicolasroard    }
4492e387187a872b3b0986b378954eb611aa83fdeanicolasroard
4592e387187a872b3b0986b378954eb611aa83fdeanicolasroard    @Override
4692e387187a872b3b0986b378954eb611aa83fdeanicolasroard    public FilterRepresentation clone() throws CloneNotSupportedException {
4792e387187a872b3b0986b378954eb611aa83fdeanicolasroard        FilterColorBorderRepresentation representation = (FilterColorBorderRepresentation) super.clone();
4892e387187a872b3b0986b378954eb611aa83fdeanicolasroard        representation.setName(getName());
4992e387187a872b3b0986b378954eb611aa83fdeanicolasroard        representation.setColor(getColor());
5092e387187a872b3b0986b378954eb611aa83fdeanicolasroard        representation.setBorderSize(getBorderSize());
5192e387187a872b3b0986b378954eb611aa83fdeanicolasroard        representation.setBorderRadius(getBorderRadius());
5292e387187a872b3b0986b378954eb611aa83fdeanicolasroard        return representation;
5392e387187a872b3b0986b378954eb611aa83fdeanicolasroard    }
5492e387187a872b3b0986b378954eb611aa83fdeanicolasroard
5592e387187a872b3b0986b378954eb611aa83fdeanicolasroard    public void useParametersFrom(FilterRepresentation a) {
5692e387187a872b3b0986b378954eb611aa83fdeanicolasroard        if (a instanceof FilterColorBorderRepresentation) {
5792e387187a872b3b0986b378954eb611aa83fdeanicolasroard            FilterColorBorderRepresentation representation = (FilterColorBorderRepresentation) a;
5892e387187a872b3b0986b378954eb611aa83fdeanicolasroard            setName(representation.getName());
5992e387187a872b3b0986b378954eb611aa83fdeanicolasroard            setColor(representation.getColor());
6092e387187a872b3b0986b378954eb611aa83fdeanicolasroard            setBorderSize(representation.getBorderSize());
6192e387187a872b3b0986b378954eb611aa83fdeanicolasroard            setBorderRadius(representation.getBorderRadius());
6292e387187a872b3b0986b378954eb611aa83fdeanicolasroard        }
6392e387187a872b3b0986b378954eb611aa83fdeanicolasroard    }
6492e387187a872b3b0986b378954eb611aa83fdeanicolasroard
6592e387187a872b3b0986b378954eb611aa83fdeanicolasroard    @Override
6692e387187a872b3b0986b378954eb611aa83fdeanicolasroard    public boolean equals(FilterRepresentation representation) {
6792e387187a872b3b0986b378954eb611aa83fdeanicolasroard        if (!super.equals(representation)) {
6892e387187a872b3b0986b378954eb611aa83fdeanicolasroard            return false;
6992e387187a872b3b0986b378954eb611aa83fdeanicolasroard        }
7092e387187a872b3b0986b378954eb611aa83fdeanicolasroard        if (representation instanceof FilterColorBorderRepresentation) {
7192e387187a872b3b0986b378954eb611aa83fdeanicolasroard            FilterColorBorderRepresentation border = (FilterColorBorderRepresentation) representation;
7292e387187a872b3b0986b378954eb611aa83fdeanicolasroard            if (border.mColor == mColor
7392e387187a872b3b0986b378954eb611aa83fdeanicolasroard                    && border.mBorderSize == mBorderSize
7492e387187a872b3b0986b378954eb611aa83fdeanicolasroard                    && border.mBorderRadius == mBorderRadius) {
7592e387187a872b3b0986b378954eb611aa83fdeanicolasroard                return true;
7692e387187a872b3b0986b378954eb611aa83fdeanicolasroard            }
7792e387187a872b3b0986b378954eb611aa83fdeanicolasroard        }
7892e387187a872b3b0986b378954eb611aa83fdeanicolasroard        return false;
7992e387187a872b3b0986b378954eb611aa83fdeanicolasroard    }
8092e387187a872b3b0986b378954eb611aa83fdeanicolasroard
8192e387187a872b3b0986b378954eb611aa83fdeanicolasroard    public boolean allowsMultipleInstances() {
8292e387187a872b3b0986b378954eb611aa83fdeanicolasroard        return true;
8392e387187a872b3b0986b378954eb611aa83fdeanicolasroard    }
8492e387187a872b3b0986b378954eb611aa83fdeanicolasroard
856900cad45d240c9a54b92991538b6a33652e766cnicolasroard    @Override
866900cad45d240c9a54b92991538b6a33652e766cnicolasroard    public int getTextId() {
876900cad45d240c9a54b92991538b6a33652e766cnicolasroard        return R.string.borders;
886900cad45d240c9a54b92991538b6a33652e766cnicolasroard    }
896900cad45d240c9a54b92991538b6a33652e766cnicolasroard
9092e387187a872b3b0986b378954eb611aa83fdeanicolasroard    public int getColor() {
9192e387187a872b3b0986b378954eb611aa83fdeanicolasroard        return mColor;
9292e387187a872b3b0986b378954eb611aa83fdeanicolasroard    }
9392e387187a872b3b0986b378954eb611aa83fdeanicolasroard
9492e387187a872b3b0986b378954eb611aa83fdeanicolasroard    public void setColor(int color) {
9592e387187a872b3b0986b378954eb611aa83fdeanicolasroard        mColor = color;
9692e387187a872b3b0986b378954eb611aa83fdeanicolasroard    }
9792e387187a872b3b0986b378954eb611aa83fdeanicolasroard
9892e387187a872b3b0986b378954eb611aa83fdeanicolasroard    public int getBorderSize() {
9992e387187a872b3b0986b378954eb611aa83fdeanicolasroard        return mBorderSize;
10092e387187a872b3b0986b378954eb611aa83fdeanicolasroard    }
10192e387187a872b3b0986b378954eb611aa83fdeanicolasroard
10292e387187a872b3b0986b378954eb611aa83fdeanicolasroard    public void setBorderSize(int borderSize) {
10392e387187a872b3b0986b378954eb611aa83fdeanicolasroard        mBorderSize = borderSize;
10492e387187a872b3b0986b378954eb611aa83fdeanicolasroard    }
10592e387187a872b3b0986b378954eb611aa83fdeanicolasroard
10692e387187a872b3b0986b378954eb611aa83fdeanicolasroard    public int getBorderRadius() {
10792e387187a872b3b0986b378954eb611aa83fdeanicolasroard        return mBorderRadius;
10892e387187a872b3b0986b378954eb611aa83fdeanicolasroard    }
10992e387187a872b3b0986b378954eb611aa83fdeanicolasroard
11092e387187a872b3b0986b378954eb611aa83fdeanicolasroard    public void setBorderRadius(int borderRadius) {
11192e387187a872b3b0986b378954eb611aa83fdeanicolasroard        mBorderRadius = borderRadius;
11292e387187a872b3b0986b378954eb611aa83fdeanicolasroard    }
11392e387187a872b3b0986b378954eb611aa83fdeanicolasroard}
114