FilterTinyPlanetRepresentation.java revision 3f0034140c165b86fbaf5c0369f39431548308e9
144a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford/*
244a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford * Copyright (C) 2012 The Android Open Source Project
344a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford *
444a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford * Licensed under the Apache License, Version 2.0 (the "License");
544a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford * you may not use this file except in compliance with the License.
644a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford * You may obtain a copy of the License at
744a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford *
844a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford *      http://www.apache.org/licenses/LICENSE-2.0
944a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford *
1044a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford * Unless required by applicable law or agreed to in writing, software
1144a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford * distributed under the License is distributed on an "AS IS" BASIS,
1244a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1344a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford * See the License for the specific language governing permissions and
1444a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford * limitations under the License.
1544a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford */
1644a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford
1744a499a64158cd5a12f8e44655f82b68c33bf3b2John Hofordpackage com.android.gallery3d.filtershow.filters;
1844a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford
196900cad45d240c9a54b92991538b6a33652e766cnicolasroardimport com.android.gallery3d.R;
206900cad45d240c9a54b92991538b6a33652e766cnicolasroardimport com.android.gallery3d.filtershow.editors.EditorTinyPlanet;
2144a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford
2244a499a64158cd5a12f8e44655f82b68c33bf3b2John Hofordpublic class FilterTinyPlanetRepresentation extends FilterBasicRepresentation {
23afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford    private static final String SERIALIZATION_NAME = "TINYPLANET";
2444a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford    private static final String LOGTAG = "FilterTinyPlanetRepresentation";
25afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford    private static final String SERIAL_ANGLE = "Angle";
2644a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford    private float mAngle = 0;
2744a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford
2844a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford    public FilterTinyPlanetRepresentation() {
2944a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford        super("TinyPlanet", 0, 50, 100);
30afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford        setSerializationName(SERIALIZATION_NAME);
3144a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford        setShowParameterValue(true);
326900cad45d240c9a54b92991538b6a33652e766cnicolasroard        setFilterClass(ImageFilterTinyPlanet.class);
333cb106ddd7ad0f8494ac9c7a33660831c1694295Ruben Brunk        setFilterType(FilterRepresentation.TYPE_TINYPLANET);
346900cad45d240c9a54b92991538b6a33652e766cnicolasroard        setTextId(R.string.tinyplanet);
356900cad45d240c9a54b92991538b6a33652e766cnicolasroard        setEditorId(EditorTinyPlanet.ID);
3691d26f6c3b183862eeffc1856e2d758e800d13f4John Hoford        setMinimum(1);
3744a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford    }
3844a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford
3944a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford    @Override
403f0034140c165b86fbaf5c0369f39431548308e9John Hoford    public FilterRepresentation copy() {
413f0034140c165b86fbaf5c0369f39431548308e9John Hoford        FilterTinyPlanetRepresentation representation = new FilterTinyPlanetRepresentation();
423f0034140c165b86fbaf5c0369f39431548308e9John Hoford        copyAllParameters(representation);
4344a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford        return representation;
4444a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford    }
4544a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford
4691d26f6c3b183862eeffc1856e2d758e800d13f4John Hoford    @Override
473f0034140c165b86fbaf5c0369f39431548308e9John Hoford    protected void copyAllParameters(FilterRepresentation representation) {
483f0034140c165b86fbaf5c0369f39431548308e9John Hoford        super.copyAllParameters(representation);
493f0034140c165b86fbaf5c0369f39431548308e9John Hoford        representation.useParametersFrom(this);
503f0034140c165b86fbaf5c0369f39431548308e9John Hoford    }
513f0034140c165b86fbaf5c0369f39431548308e9John Hoford
523f0034140c165b86fbaf5c0369f39431548308e9John Hoford    @Override
5391d26f6c3b183862eeffc1856e2d758e800d13f4John Hoford    public void useParametersFrom(FilterRepresentation a) {
5491d26f6c3b183862eeffc1856e2d758e800d13f4John Hoford        FilterTinyPlanetRepresentation representation = (FilterTinyPlanetRepresentation) a;
5591d26f6c3b183862eeffc1856e2d758e800d13f4John Hoford        super.useParametersFrom(a);
5691d26f6c3b183862eeffc1856e2d758e800d13f4John Hoford        mAngle = representation.mAngle;
5791d26f6c3b183862eeffc1856e2d758e800d13f4John Hoford        setZoom(representation.getZoom());
5891d26f6c3b183862eeffc1856e2d758e800d13f4John Hoford    }
5991d26f6c3b183862eeffc1856e2d758e800d13f4John Hoford
6044a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford    public void setAngle(float angle) {
6144a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford        mAngle = angle;
6244a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford    }
6344a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford
6444a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford    public float getAngle() {
6544a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford        return mAngle;
6644a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford    }
6744a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford
6844a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford    public int getZoom() {
6944a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford        return getValue();
7044a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford    }
7144a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford
7244a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford    public void setZoom(int zoom) {
7344a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford        setValue(zoom);
7444a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford    }
756900cad45d240c9a54b92991538b6a33652e766cnicolasroard
766900cad45d240c9a54b92991538b6a33652e766cnicolasroard    public boolean isNil() {
776900cad45d240c9a54b92991538b6a33652e766cnicolasroard        // TinyPlanet always has an effect
786900cad45d240c9a54b92991538b6a33652e766cnicolasroard        return false;
796900cad45d240c9a54b92991538b6a33652e766cnicolasroard    }
80afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford
81afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford    @Override
82afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford    public String[][] serializeRepresentation() {
83afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford        String[][] ret = {
84afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford                {SERIAL_NAME  , getName() },
85afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford                {SERIAL_VALUE , Integer.toString(getValue())},
86afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford                {SERIAL_ANGLE , Float.toString(mAngle)}};
87afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford        return ret;
88afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford    }
89afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford
90afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford    @Override
91afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford    public void deSerializeRepresentation(String[][] rep) {
92afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford        super.deSerializeRepresentation(rep);
93afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford        for (int i = 0; i < rep.length; i++) {
94afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford            if (SERIAL_VALUE.equals(rep[i][0])) {
95afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford                setValue(Integer.parseInt(rep[i][1]));
96afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford            } else if (SERIAL_ANGLE.equals(rep[i][0])) {
97afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford                setAngle(Float.parseFloat(rep[i][1]));
98afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford            }
99afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford        }
100afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford    }
10144a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford}
102