001: /*
002: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
003: *
004: * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
005: *
006: * The contents of this file are subject to the terms of either the GNU
007: * General Public License Version 2 only ("GPL") or the Common
008: * Development and Distribution License("CDDL") (collectively, the
009: * "License"). You may not use this file except in compliance with the
010: * License. You can obtain a copy of the License at
011: * http://www.netbeans.org/cddl-gplv2.html
012: * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
013: * specific language governing permissions and limitations under the
014: * License. When distributing the software, include this License Header
015: * Notice in each file and include the License file at
016: * nbbuild/licenses/CDDL-GPL-2-CP. Sun designates this
017: * particular file as subject to the "Classpath" exception as provided
018: * by Sun in the GPL Version 2 section of the License file that
019: * accompanied this code. If applicable, add the following below the
020: * License Header, with the fields enclosed by brackets [] replaced by
021: * your own identifying information:
022: * "Portions Copyrighted [year] [name of copyright owner]"
023: *
024: * Contributor(s):
025: *
026: * The Original Software is NetBeans. The Initial Developer of the Original
027: * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
028: * Microsystems, Inc. All Rights Reserved.
029: *
030: * If you wish your version of this file to be governed by only the CDDL
031: * or only the GPL Version 2, indicate your decision by adding
032: * "[Contributor] elects to include this software in this distribution
033: * under the [CDDL or GPL Version 2] license." If you do not indicate a
034: * single choice of license, a recipient has the option to distribute
035: * your version of this file under either the CDDL, the GPL Version 2 or
036: * to extend the choice of license to its licensees as provided above.
037: * However, if you add GPL Version 2 code and therefore, elected the GPL
038: * Version 2 license, then the option applies only if the new code is
039: * made subject to such option by the copyright holder.
040: */
041:
042: package org.netbeans.modules.uml.ui.swing.drawingarea;
043:
044: import com.tomsawyer.drawing.TSConnector;
045:
046: import org.netbeans.modules.uml.core.metamodel.diagrams.ReconnectEdgeCreateConnectorKind;
047: import org.netbeans.modules.uml.ui.support.viewfactorysupport.IETEdge;
048: import org.netbeans.modules.uml.ui.support.viewfactorysupport.IETNode;
049:
050: public class ReconnectEdgeContext extends EdgeEventContext implements
051: IReconnectEdgeContext {
052: // The edge being reconnected
053: protected IETEdge m_Edge = null;
054:
055: // Indicates the target end of the edge is being reconnected
056: protected boolean m_bReconnectTarget = true;
057:
058: // The node that is not being modified
059: protected IETNode m_AnchoredNode = null;
060:
061: // The node that the reconnect end is on
062: protected IETNode m_PreConnectNode = null;
063:
064: // The proposed end node
065: protected IETNode m_ProposedEndNode = null;
066:
067: // The coneector to attach to the edge when finished
068: protected TSConnector m_AssociatedConnector = null;
069:
070: // Should the reconnect create a new connector or default to pointing to the center of the node?
071: protected int m_ReconnectConnector = ReconnectEdgeCreateConnectorKind.RECCK_DONT_CREATE;
072:
073: /**
074: *
075: */
076: public ReconnectEdgeContext() {
077: super ();
078: }
079:
080: /* (non-Javadoc)
081: * @see org.netbeans.modules.uml.ui.swing.drawingarea.IReconnectEdgeContext#getEdge()
082: */
083: public IETEdge getEdge() {
084: return m_Edge;
085: }
086:
087: /* (non-Javadoc)
088: * @see org.netbeans.modules.uml.ui.swing.drawingarea.IReconnectEdgeContext#setEdge(null)
089: */
090: public void setEdge(IETEdge value) {
091: m_Edge = value;
092: }
093:
094: /* (non-Javadoc)
095: * @see org.netbeans.modules.uml.ui.swing.drawingarea.IReconnectEdgeContext#getReconnectTarget()
096: */
097: public boolean getReconnectTarget() {
098: return m_bReconnectTarget;
099: }
100:
101: /* (non-Javadoc)
102: * @see org.netbeans.modules.uml.ui.swing.drawingarea.IReconnectEdgeContext#setReconnectTarget(boolean)
103: */
104: public void setReconnectTarget(boolean value) {
105: m_bReconnectTarget = value;
106: }
107:
108: /* (non-Javadoc)
109: * @see org.netbeans.modules.uml.ui.swing.drawingarea.IReconnectEdgeContext#getAnchoredNode()
110: */
111: public IETNode getAnchoredNode() {
112: return m_AnchoredNode;
113: }
114:
115: /* (non-Javadoc)
116: * @see org.netbeans.modules.uml.ui.swing.drawingarea.IReconnectEdgeContext#setAnchoredNode(null)
117: */
118: public void setAnchoredNode(IETNode value) {
119: m_AnchoredNode = value;
120: }
121:
122: /* (non-Javadoc)
123: * @see org.netbeans.modules.uml.ui.swing.drawingarea.IReconnectEdgeContext#getPreConnectNode()
124: */
125: public IETNode getPreConnectNode() {
126: if (m_PreConnectNode != null)
127: return m_PreConnectNode;
128: else if (this .getEdge() != null) {
129: if (m_bReconnectTarget) {
130: return getEdge().getToNode();
131: } else
132: return getEdge().getFromNode();
133: }
134: return null;
135: }
136:
137: /* (non-Javadoc)
138: * @see org.netbeans.modules.uml.ui.swing.drawingarea.IReconnectEdgeContext#setPreConnectNode(null)
139: */
140: public void setPreConnectNode(IETNode value) {
141: m_PreConnectNode = value;
142:
143: }
144:
145: /* (non-Javadoc)
146: * @see org.netbeans.modules.uml.ui.swing.drawingarea.IReconnectEdgeContext#getProposedEndNode()
147: */
148: public IETNode getProposedEndNode() {
149: return m_ProposedEndNode;
150: }
151:
152: /* (non-Javadoc)
153: * @see org.netbeans.modules.uml.ui.swing.drawingarea.IReconnectEdgeContext#setProposedEndNode(null)
154: */
155: public void setProposedEndNode(IETNode value) {
156: m_ProposedEndNode = value;
157: }
158:
159: /* (non-Javadoc)
160: * @see org.netbeans.modules.uml.ui.swing.drawingarea.IReconnectEdgeContext#getAssociatedConnector()
161: */
162: public TSConnector getAssociatedConnector() {
163: return m_AssociatedConnector;
164: }
165:
166: /* (non-Javadoc)
167: * @see org.netbeans.modules.uml.ui.swing.drawingarea.IReconnectEdgeContext#setAssociatedConnector(com.tomsawyer.editor.TSEConnector)
168: */
169: public void setAssociatedConnector(TSConnector value) {
170: m_AssociatedConnector = value;
171: }
172:
173: /* (non-Javadoc)
174: * @see org.netbeans.modules.uml.ui.swing.drawingarea.IReconnectEdgeContext#getReconnectConnector()
175: */
176: public int getReconnectConnector() {
177: return m_ReconnectConnector;
178: }
179:
180: /* (non-Javadoc)
181: * @see org.netbeans.modules.uml.ui.swing.drawingarea.IReconnectEdgeContext#setReconnectConnector(int)
182: */
183: public void setReconnectConnector(int nReconnect) {
184: m_ReconnectConnector = nReconnect;
185: }
186:
187: }
|