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

Quick Search    Search Deep

Source code: com/memoire/dja/DjaDirectArrow.java


1   /**
2    * @modification $Date: 2001/12/03 16:28:08 $
3    * @statut       unstable
4    * @file         DjaDirectArrow.java
5    * @version      0.36
6    * @author       Guillaume Desnoix
7    * @email        guillaume@desnoix.com
8    * @license      GNU General Public License 2 (GPL2)
9    * @copyright    1998-2001 Guillaume Desnoix
10   */
11  
12  package com.memoire.dja;
13  
14  import com.memoire.fu.*;
15  import com.memoire.dnd.*;
16  import com.memoire.bu.*;
17  import com.memoire.dja.*;
18  import com.memoire.mst.*;
19  
20  
21  import java.awt.*;
22  import java.awt.event.*;
23  import javax.swing.*;
24  import javax.swing.border.*;
25  
26  public class DjaDirectArrow
27         extends DjaLink
28  {
29    private int xr0,yr0,xr1,yr1;
30  
31    public DjaDirectArrow(String _text)
32    {
33      super();
34  
35      xr0=xbegin_;
36      yr0=ybegin_;
37      xr1=xend_;
38      yr1=yend_;
39  
40      if(_text!=null) addText(_text);
41    }
42  
43    public DjaDirectArrow()
44    {
45      this(null);
46    }
47  
48    public boolean contains(int _x, int _y)
49    {
50      return DjaLib.close(xr0,yr0,xr1,yr1,_x,_y);
51    }
52  
53    public DjaAnchor[] getAnchors()
54    {
55      DjaAnchor[] r=new DjaAnchor[1];
56      r[0]=new DjaAnchor(this,0,ANY,(xr0+xr1)/2,(yr0+yr1)/2);
57      return r;
58    }
59  
60    public void paintObject(Graphics _g)
61    {
62      updateXYO();
63  
64      int x0=xbegin_;
65      int y0=ybegin_;
66      int o0=obegin_;
67      int x1=xend_;
68      int y1=yend_;
69      int o1=oend_;
70  
71      int x,y;
72  
73      xr0=x0;
74      yr0=y0;
75      xr1=x1;
76      yr1=y1;
77  
78      if(tbegin_!=0)
79      switch(o0)
80      {
81      case EAST:
82        drawBracket(_g,tbegin_,o0,x0,y0-5,x0+10,y0+5);
83        xr0+=11;
84        break;
85      case WEST:
86        drawBracket(_g,tbegin_,o0,x0,y0-5,x0-10,y0+5);
87        xr0-=11;
88        break;
89      case NORTH:
90        drawBracket(_g,tbegin_,o0,x0-5,y0,x0+5,y0-10);
91        yr0-=11;
92        break;
93      case SOUTH:
94        drawBracket(_g,tbegin_,o0,x0-5,y0,x0+5,y0+10);
95        yr0+=11;
96        break;
97      }
98      
99      if(tend_!=0)
100     switch(o1)
101     {
102     case EAST:
103       drawBracket(_g,tend_,o1,x1,y1-5,x1+10,y1+5);
104       xr1+=11;
105       break;
106     case WEST:
107       drawBracket(_g,tend_,o1,x1,y1-5,x1-10,y1+5);
108       xr1-=11;
109       break;
110     case NORTH:
111       drawBracket(_g,tend_,o1,x1-5,y1,x1+5,y1-10);
112       yr1-=11;
113       break;
114     case SOUTH:
115       drawBracket(_g,tend_,o1,x1-5,y1,x1+5,y1+10);
116       yr1+=11;
117       break;
118     }
119 
120     if((tbegin_==1)||(tbegin_==4)) { xr0=xbegin_; yr0=ybegin_; }
121     if((tend_  ==1)||(tend_  ==4)) { xr1=xend_;   yr1=yend_;   }
122 
123     _g.setColor(getForeground());
124     DjaGraphics.BresenhamParams bp=DjaGraphics.getBresenhamParams(this);
125     DjaGraphics.drawLine(_g,xr0,yr0,xr1,yr1,bp);
126 
127     super.paintObject(_g);
128   }
129 }