Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: com/vinculum/processeditor/figures/NodeFigure.java


1   /* * ** **  BEGIN LICENSE BLOCK * ** **
2    * Version: MPL 1.1/GPL 2.0/LGPL 2.1
3    *
4    * The contents of this file are subject to the Mozilla Public License Version 
5    * 1.1 (the "License"); you may not use this file except in compliance with 
6    * the License. You may obtain a copy of the License at 
7    * http://www.mozilla.org/MPL/
8    *
9    * Software distributed under the License is distributed on an "AS IS" basis,
10   * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
11   * for the specific language governing rights and limitations under the
12   * License.
13   *
14   * The Original Code is Vinculum Open Source.
15   *
16   * The Initial Developer of the Original Code is
17   * Gerard Toonstra.
18   * Portions created by the Initial Developer are Copyright (C) 2003
19   * the Initial Developer. All Rights Reserved.
20   *
21   * Contributor(s):
22   *
23   * Alternatively, the contents of this file may be used under the terms of
24   * either the GNU General Public License Version 2 or later (the "GPL"), or
25   * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
26   * in which case the provisions of the GPL or the LGPL are applicable instead
27   * of those above. If you wish to allow use of your version of this file only
28   * under the terms of either the GPL or the LGPL, and not to allow others to
29   * use your version of this file under the terms of the MPL, indicate your
30   * decision by deleting the provisions above and replace them with the notice
31   * and other provisions required by the GPL or the LGPL. If you do not delete
32   * the provisions above, a recipient may use your version of this file under
33   * the terms of any one of the MPL, the GPL or the LGPL.
34   *
35   * ** ** * END LICENSE BLOCK * ** **
36   */
37  
38  /***************************************************************************
39                            $RCSfile: NodeFigure.java,v $  -  description
40                               -------------------
41      begin                : $Date: 2003/07/08 08:02:32 $
42      copyright            : Vinculum (C) 2002
43      author               : $Author: chiraz $
44   ***************************************************************************/
45  
46  /* $Log: NodeFigure.java,v $
47  /* Revision 1.1.1.1  2003/07/08 08:02:32  chiraz
48  /* egg
49  /* */
50  
51  package com.vinculum.processeditor.figures;
52  
53  import org.eclipse.draw2d.ConnectionAnchor;
54  import org.eclipse.draw2d.ImageFigure;
55  import org.eclipse.draw2d.geometry.Point;
56  
57  /**
58   * @author chilan
59   *
60   */
61  public class NodeFigure extends ImageFigure
62  {
63    protected FixedConnectionAnchor inputConnectionAnchor = new FixedConnectionAnchor(this);
64    protected FixedConnectionAnchor outputConnectionAnchor = new FixedConnectionAnchor(this);
65  
66    public ConnectionAnchor connectionAnchorAt(Point p) 
67    {
68      long min = Long.MAX_VALUE;
69      ConnectionAnchor srcAnchor = null;
70      Point srcPoint = null;
71      long srcDist = 0;
72      ConnectionAnchor destAnchor = null;
73      Point destPoint = null;
74      long destDist = 0;
75      
76      srcAnchor = (ConnectionAnchor)outputConnectionAnchor;
77      srcPoint = srcAnchor.getLocation(null);    
78      srcDist = p.getDistance2(srcPoint);
79  
80      destAnchor = (ConnectionAnchor)inputConnectionAnchor;
81      destPoint = destAnchor.getLocation(null);    
82      destDist = p.getDistance2(destPoint);
83      
84      if (srcDist < destDist) 
85      {
86        return srcAnchor;
87      }    
88    
89      return destAnchor;
90    }
91    
92    public ConnectionAnchor getTargetConnectionAnchor()
93    {
94      return inputConnectionAnchor;     
95    }
96    
97    public ConnectionAnchor getSourceConnectionAnchor()
98    {
99      return outputConnectionAnchor;     
100   }  
101 
102   public ConnectionAnchor getConnectionAnchor(String name)
103   {
104     if (name.equals("TARGET"))
105     {
106       return inputConnectionAnchor;      
107     }
108     else if ( name.equals("SOURCE"))
109     {
110       return outputConnectionAnchor;      
111     }
112     return null;
113   }
114   
115   public String mapConnectionAnchorToName(ConnectionAnchor anchor)
116   {
117     if ( inputConnectionAnchor.equals(anchor))
118     {
119       return "TARGET";
120     }
121     else if ( outputConnectionAnchor.equals(anchor))
122     {
123       return "SOURCE";
124     }
125     return null;
126   }
127 }