FilterTinyPlanetRepresentation.java revision afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280
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);
33f60760478ec7c78446be0e0c6bc5502d1557974cnicolasroard        setPriority(FilterRepresentation.TYPE_TINYPLANET);
346900cad45d240c9a54b92991538b6a33652e766cnicolasroard        setTextId(R.string.tinyplanet);
356900cad45d240c9a54b92991538b6a33652e766cnicolasroard        setButtonId(R.id.tinyplanetButton);
366900cad45d240c9a54b92991538b6a33652e766cnicolasroard        setEditorId(EditorTinyPlanet.ID);
3744a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford    }
3844a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford
3944a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford    @Override
4044a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford    public FilterRepresentation clone() throws CloneNotSupportedException {
4144a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford        FilterTinyPlanetRepresentation representation = (FilterTinyPlanetRepresentation) super
4244a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford                .clone();
4344a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford        representation.mAngle = mAngle;
4444a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford        representation.setZoom(getZoom());
4544a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford        return representation;
4644a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford    }
4744a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford
4844a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford    public void setAngle(float angle) {
4944a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford        mAngle = angle;
5044a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford    }
5144a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford
5244a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford    public float getAngle() {
5344a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford        return mAngle;
5444a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford    }
5544a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford
5644a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford    public int getZoom() {
5744a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford        return getValue();
5844a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford    }
5944a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford
6044a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford    public void setZoom(int zoom) {
6144a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford        setValue(zoom);
6244a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford    }
636900cad45d240c9a54b92991538b6a33652e766cnicolasroard
646900cad45d240c9a54b92991538b6a33652e766cnicolasroard    public boolean isNil() {
656900cad45d240c9a54b92991538b6a33652e766cnicolasroard        // TinyPlanet always has an effect
666900cad45d240c9a54b92991538b6a33652e766cnicolasroard        return false;
676900cad45d240c9a54b92991538b6a33652e766cnicolasroard    }
68afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford
69afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford    @Override
70afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford    public String[][] serializeRepresentation() {
71afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford        String[][] ret = {
72afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford                {SERIAL_NAME  , getName() },
73afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford                {SERIAL_VALUE , Integer.toString(getValue())},
74afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford                {SERIAL_ANGLE , Float.toString(mAngle)}};
75afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford        return ret;
76afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford    }
77afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford
78afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford    @Override
79afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford    public void deSerializeRepresentation(String[][] rep) {
80afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford        super.deSerializeRepresentation(rep);
81afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford        for (int i = 0; i < rep.length; i++) {
82afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford            if (SERIAL_VALUE.equals(rep[i][0])) {
83afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford                setValue(Integer.parseInt(rep[i][1]));
84afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford            } else if (SERIAL_ANGLE.equals(rep[i][0])) {
85afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford                setAngle(Float.parseFloat(rep[i][1]));
86afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford            }
87afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford        }
88afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford    }
8944a499a64158cd5a12f8e44655f82b68c33bf3b2John Hoford}
90