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.IOException;
035:
036: import com.jeta.forms.gui.form.FormComponent;
037: import com.jeta.forms.gui.form.GridComponent;
038: import com.jeta.forms.gui.form.StandardComponent;
039: import com.jeta.forms.store.AbstractJETAPersistable;
040: import com.jeta.forms.store.JETAObjectInput;
041: import com.jeta.forms.store.JETAObjectOutput;
042:
043: /**
044: * Locates a component on the form.
045: *
046: * @deprecated Focus is no longer supported by the designer.
047: *
048: * @author Jeff Tassin
049: */
050: public class FormCellFocusKey extends AbstractJETAPersistable implements
051: FocusKey {
052: static final long serialVersionUID = -4924710096594920379L;
053:
054: /**
055: * The version of this class
056: */
057: public static final int VERSION = 1;
058:
059: private int m_row;
060: private int m_col;
061:
062: /**
063: * For testing only
064: */
065: private transient Component m_component;
066:
067: /**
068: * Default ctor for serialization
069: */
070: public FormCellFocusKey() {
071:
072: }
073:
074: /**
075: * ctor
076: *
077: * @param path
078: * the path to this key
079: */
080: public FormCellFocusKey(int row, int col, Component comp) {
081: m_row = row;
082: m_col = col;
083: m_component = comp;
084: }
085:
086: public Component getComponent(Container c) {
087: if (!(c instanceof FormComponent)) {
088: return null;
089: }
090: FormComponent parent = (FormComponent) c;
091: GridComponent gc = parent.getGridComponent(m_col, m_row);
092: if (gc instanceof StandardComponent) {
093: Component comp = ((StandardComponent) gc).getBeanDelegate();
094: return comp;
095: } else {
096: return gc;
097: }
098: }
099:
100: /**
101: * For debugging
102: */
103: public void print() {
104: System.out.print("cell[");
105: System.out.print(m_col);
106: System.out.print(",");
107: System.out.print(m_row);
108: System.out.print("]");
109: }
110:
111: /**
112: * JETAPersitable Implementation
113: */
114: public void read(JETAObjectInput in) throws ClassNotFoundException,
115: IOException {
116: int version = in.readVersion();
117: m_row = in.readInt("row");
118: m_col = in.readInt("col");
119: }
120:
121: /**
122: * Externalizable Implementation
123: */
124: public void write(JETAObjectOutput out) throws IOException {
125: out.writeVersion(VERSION);
126: out.writeInt("row", m_row);
127: out.writeInt("col", m_col);
128: }
129:
130: }
|