001: /*
002: * Copyright (c) 2004 JETA Software, Inc. All rights reserved.
003: *
004: * Redistribution and use in source and binary forms, with or without modification,
005: * are permitted provided that the following conditions are met:
006: *
007: * o Redistributions of source code must retain the above copyright notice,
008: * this list of conditions and the following disclaimer.
009: *
010: * o Redistributions in binary form must reproduce the above copyright notice,
011: * this list of conditions and the following disclaimer in the documentation
012: * and/or other materials provided with the distribution.
013: *
014: * o Neither the name of JETA Software nor the names of its contributors may
015: * be used to endorse or promote products derived from this software without
016: * specific prior written permission.
017: *
018: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
019: * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
020: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
021: * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
022: * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
023: * INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
024: * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
025: * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
026: * INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
027: * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
028: */
029:
030: package com.jeta.forms.store.memento;
031:
032: import java.awt.Component;
033: import java.awt.Container;
034: import java.io.Externalizable;
035: import java.io.IOException;
036:
037: import com.jeta.forms.store.AbstractJETAPersistable;
038: import com.jeta.forms.store.JETAObjectInput;
039: import com.jeta.forms.store.JETAObjectOutput;
040:
041: /**
042: * Locates a component in a container
043: *
044: * @deprecated Focus is no longer supported by the designer.
045: *
046: * @author Jeff Tassin
047: */
048: public class ContainerFocusKey extends AbstractJETAPersistable
049: implements FocusKey, Externalizable {
050: static final long serialVersionUID = 2805759792148388234L;
051:
052: /**
053: * The version of this class
054: */
055: public static final int VERSION = 1;
056:
057: /**
058: * The index within the parent that the component can be found
059: */
060: private int m_index;
061:
062: /**
063: * This is only used for testing
064: */
065: private transient Component m_component;
066:
067: /**
068: * Default ctor for serialization
069: */
070: public ContainerFocusKey() {
071:
072: }
073:
074: /**
075: * ctor
076: *
077: * @param path
078: * the path to this key
079: */
080: public ContainerFocusKey(int index, Component comp) {
081: m_index = index;
082: m_component = comp;
083: }
084:
085: public Component getComponent(Container c) {
086: if (c == null)
087: return null;
088:
089: Component comp = c.getComponent(m_index);
090: return comp;
091: }
092:
093: /**
094: * For debugging
095: */
096: public void print() {
097: System.out.print("container(");
098: System.out.print(m_index);
099: System.out.print(")");
100: }
101:
102: /**
103: * Externalizable Implementation
104: */
105: public void read(JETAObjectInput in) throws ClassNotFoundException,
106: IOException {
107: int version = in.readVersion();
108: m_index = in.readInt("index");
109: }
110:
111: /**
112: * Externalizable Implementation
113: */
114: public void write(JETAObjectOutput out) throws IOException {
115: out.writeVersion(VERSION);
116: out.writeInt("index", m_index);
117: }
118:
119: }
|