Statistics
| Revision:

svn-document-layout / trunk / org.gvsig.app.document.layout2.app / org.gvsig.app.document.layout2.app.mainplugin / src / main / java / org / gvsig / app / project / documents / layout / fframes / AbstractFFrameViewDependence.java @ 324

History | View | Annotate | Download (3.4 KB)

1 5 jldominguez
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.app.project.documents.layout.fframes;
23
24
import org.gvsig.tools.ToolsLocator;
25
import org.gvsig.tools.dynobject.DynStruct;
26
import org.gvsig.tools.persistence.PersistenceManager;
27
import org.gvsig.tools.persistence.PersistentState;
28
import org.gvsig.tools.persistence.exception.PersistenceException;
29
30
/**
31
 * @author gvSIG Team
32
 * @version $Id$
33
 *
34
 */
35
public abstract class AbstractFFrameViewDependence extends FFrame implements
36
    IFFrameViewDependence {
37
38
    public static final String PERSISTENCE_DEFINITION_NAME =
39
        "AbstractFFrameViewDependence";
40
    private static final String FFRAMEVIEWDEPENDENCE_FIELD =
41
        "fframeViewDependence";
42
43
    protected FFrameView fframeViewDependence = null;
44
45
    @Override
46
    public IFFrame clone() throws CloneNotSupportedException {
47
        IFFrame frame = (IFFrame) super.clone();
48
        // ((IFFrameViewDependence)
49
        // frame).initDependence(layout.getLayoutContext().getAllFFrames());
50
        return frame;
51
    }
52
53
    public void setFFrameDependence(IFFrame f) {
54
        fframeViewDependence = (FFrameView) f;
55
    }
56
57
    public void refreshDependence(IFFrame fant, IFFrame fnew) {
58
        if ((fframeViewDependence != null) && fframeViewDependence.equals(fant)) {
59
            fframeViewDependence = (FFrameView) fnew;
60
        }
61
    }
62
63
    public IFFrame[] getFFrameDependence() {
64
        return new IFFrame[] { fframeViewDependence };
65
    }
66
67
    public static void registerPersistent() {
68
        PersistenceManager manager = ToolsLocator.getPersistenceManager();
69
        if (manager.getDefinition(PERSISTENCE_DEFINITION_NAME) == null) {
70
            DynStruct definition =
71
                manager.addDefinition(AbstractFFrameViewDependence.class,
72
                    PERSISTENCE_DEFINITION_NAME,
73
                    "AbstractFFrameViewDependence persistence definition",
74
                    null, null);
75
76
            definition.extend(manager
77
                .getDefinition(FFrame.PERSISTENCE_DEFINITION_NAME));
78
79
            definition.addDynFieldObject(FFRAMEVIEWDEPENDENCE_FIELD)
80
                .setClassOfValue(FFrameView.class);
81
        }
82
    }
83
84
    @Override
85
    public void loadFromState(PersistentState state)
86
        throws PersistenceException {
87
        super.loadFromState(state);
88
        fframeViewDependence =
89
            (FFrameView) state.get(FFRAMEVIEWDEPENDENCE_FIELD);
90
    }
91
92
    @Override
93
    public void saveToState(PersistentState state) throws PersistenceException {
94
        super.saveToState(state);
95
        state.set(FFRAMEVIEWDEPENDENCE_FIELD, fframeViewDependence);
96
    }
97
}