001: /*
002: * uDig - User Friendly Desktop Internet GIS client
003: * http://udig.refractions.net
004: * (C) 2004, Refractions Research Inc.
005: *
006: * This library is free software; you can redistribute it and/or
007: * modify it under the terms of the GNU Lesser General Public
008: * License as published by the Free Software Foundation;
009: * version 2.1 of the License.
010: *
011: * This library is distributed in the hope that it will be useful,
012: * but WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014: * Lesser General Public License for more details.
015: *
016: */
017: package net.refractions.udig.printing.model;
018:
019: /**
020: * A Connection represents some sort of relation between two Boxes.
021: *
022: * For example, a scalebar needs to be related to a map in order to draw
023: * itself properly. A Connection can be used to visualize this relation in the
024: * PageEditor.
025: *
026: * @author rgould
027: * @since 0.6.0
028: * @model
029: */
030: public interface Connection extends Element {
031: /**
032: * @return true if this connection is actually connected, false otherwise
033: * @model
034: */
035: public boolean isConnected();
036:
037: /**
038: * Sets the value of the '{@link net.refractions.udig.printing.model.Connection#isConnected <em>Connected</em>}' attribute.
039: * <!-- begin-user-doc -->
040: * Sets the connected state of this connection to the value provided
041: * <!-- end-user-doc -->
042: * @param value the new value of the '<em>Connected</em>' attribute.
043: * @see #isConnected()
044: * @generated
045: */
046: void setConnected(boolean value);
047:
048: /**
049: * The Box returned represents a object that uses the target of the
050: * connection somehow.
051: *
052: * @see Box
053: * @return the Box that is the source of this connection
054: * @model
055: */
056: public Box getSource();
057:
058: /**
059: * Sets the value of the '{@link net.refractions.udig.printing.model.Connection#getSource <em>Source</em>}' reference.
060: * <!-- begin-user-doc -->
061: * Sets this connection's source Box
062: * This will affect the connection by notifying any listeners of the change.
063: * <!-- end-user-doc -->
064: * @param value the new value of the '<em>Source</em>' reference.
065: * @see #getSource()
066: * @generated
067: */
068: void setSource(Box value);
069:
070: /**
071: * This represents a link between a Box and this class. The target of a
072: * connection is often used by the source to retrieve information, or
073: * maybe for manipulation.
074: *
075: * @see Box
076: * @return the Box that is the target of this connection
077: * @model
078: */
079: public Box getTarget();
080:
081: /**
082: * Sets the value of the '{@link net.refractions.udig.printing.model.Connection#getTarget <em>Target</em>}' reference.
083: * <!-- begin-user-doc -->
084: * Sets this connection's source Box
085: * This represents a link between a Box and this class. The target of a
086: * connection is often used by the source to retrieve information, or
087: * maybe for manipulation.
088: * <!-- end-user-doc -->
089: * @param value the new value of the '<em>Target</em>' reference.
090: * @see #getTarget()
091: * @generated
092: */
093: void setTarget(Box value);
094:
095: /**
096: * Disconnects this connection from its source and target
097: */
098: public void disconnect();
099:
100: /**
101: * Reconnects this connection to its target and source, as if it
102: * was just created.
103: */
104: public void reconnect();
105:
106: /**
107: * Reconnects this connection to a new source Box and a new target Box
108: *
109: * this is the same as:
110: * <pre>
111: * {
112: * setSource(source);
113: * setTarget(target);
114: * reconnect();
115: * }
116: * </pre>
117: * @param source the Connection's new source
118: * @param target the Connection's new target
119: */
120: public void reconnect(Box source, Box target);
121: }
|