~ubuntu-branches/ubuntu/saucy/libtggraphlayout-java/saucy

« back to all changes in this revision

Viewing changes to com/touchgraph/graphlayout/interaction/LocalityScroll.java

  • Committer: Bazaar Package Importer
  • Author(s): Morten Sørensen
  • Date: 2009-12-06 17:57:32 UTC
  • Revision ID: james.westby@ubuntu.com-20091206175732-auvd39j1u30e0x50
Tags: upstream-122
Import upstream version 122

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * TouchGraph LLC. Apache-Style Software License
 
3
 *
 
4
 *
 
5
 * Copyright (c) 2001-2002 Alexander Shapiro. All rights reserved.
 
6
 *
 
7
 * Redistribution and use in source and binary forms, with or without
 
8
 * modification, are permitted provided that the following conditions
 
9
 * are met:
 
10
 *
 
11
 * 1. Redistributions of source code must retain the above copyright
 
12
 *    notice, this list of conditions and the following disclaimer. 
 
13
 *
 
14
 * 2. Redistributions in binary form must reproduce the above copyright
 
15
 *    notice, this list of conditions and the following disclaimer in
 
16
 *    the documentation and/or other materials provided with the
 
17
 *    distribution.
 
18
 *
 
19
 * 3. The end-user documentation included with the redistribution,
 
20
 *    if any, must include the following acknowledgment:  
 
21
 *       "This product includes software developed by 
 
22
 *        TouchGraph LLC (http://www.touchgraph.com/)."
 
23
 *    Alternately, this acknowledgment may appear in the software itself,
 
24
 *    if and wherever such third-party acknowledgments normally appear.
 
25
 *
 
26
 * 4. The names "TouchGraph" or "TouchGraph LLC" must not be used to endorse 
 
27
 *    or promote products derived from this software without prior written 
 
28
 *    permission.  For written permission, please contact 
 
29
 *    alex@touchgraph.com
 
30
 *
 
31
 * 5. Products derived from this software may not be called "TouchGraph",
 
32
 *    nor may "TouchGraph" appear in their name, without prior written
 
33
 *    permission of alex@touchgraph.com.
 
34
 *
 
35
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
 
36
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 
37
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 
38
 * DISCLAIMED.  IN NO EVENT SHALL TOUCHGRAPH OR ITS CONTRIBUTORS BE 
 
39
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
 
40
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
 
41
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 
 
42
 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
 
43
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 
 
44
 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
 
45
 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
46
 * ====================================================================
 
47
 *
 
48
 */
 
49
 
 
50
package com.touchgraph.graphlayout.interaction;
 
51
 
 
52
import  com.touchgraph.graphlayout.*;
 
53
import  com.touchgraph.graphlayout.graphelements.*;
 
54
 
 
55
import  java.awt.event.*;
 
56
import java.awt.*;
 
57
//import  javax.swing.*;
 
58
 
 
59
/** LocalityScroll.
 
60
  *
 
61
  * @author   Alexander Shapiro
 
62
  * @version  1.22-jre1.1  $Id: LocalityScroll.java,v 1.2 2002/09/23 18:45:48 ldornbusch Exp $
 
63
  */
 
64
public class LocalityScroll implements GraphListener {
 
65
 
 
66
    private Scrollbar localitySB;
 
67
 
 
68
    private TGPanel tgPanel;
 
69
 
 
70
    public LocalityScroll(TGPanel tgp) {
 
71
        tgPanel=tgp;
 
72
        localitySB = new Scrollbar(Scrollbar.HORIZONTAL, 1, 1, 0, 7);
 
73
        localitySB.setBlockIncrement(1);
 
74
        localitySB.setUnitIncrement(1);
 
75
        localitySB.addAdjustmentListener(new localityAdjustmentListener());
 
76
        tgPanel.addGraphListener(this);
 
77
    }
 
78
 
 
79
    public Scrollbar getLocalitySB() {
 
80
        return localitySB;
 
81
    }
 
82
 
 
83
    public int getLocalityRadius() {
 
84
        int locVal = localitySB.getValue();
 
85
        if(locVal>=6) return LocalityUtils.INFINITE_LOCALITY_RADIUS;
 
86
        else return locVal;
 
87
    }
 
88
 
 
89
    public void setLocalityRadius(int radius) {
 
90
        if (radius <= 0 ) 
 
91
            localitySB.setValue(0);
 
92
        else if (radius <= 5) //and > 0
 
93
            localitySB.setValue(radius);
 
94
        else // radius > 5
 
95
            localitySB.setValue(6);        
 
96
    }
 
97
 
 
98
    public void graphMoved() {} //From GraphListener interface
 
99
    public void graphReset() { localitySB.setValue(1); } //From GraphListener interface
 
100
 
 
101
    private class localityAdjustmentListener implements AdjustmentListener {
 
102
        public void adjustmentValueChanged(AdjustmentEvent e) {
 
103
            Node select = tgPanel.getSelect();                        
 
104
            if (select!=null || getLocalityRadius() == LocalityUtils.INFINITE_LOCALITY_RADIUS)
 
105
                try {
 
106
                    tgPanel.setLocale(select, getLocalityRadius());
 
107
                }
 
108
                catch (TGException ex) {
 
109
                    System.out.println("Error setting locale");
 
110
                    ex.printStackTrace();
 
111
                }
 
112
        }
 
113
    }
 
114
 
 
115
} // end com.touchgraph.graphlayout.interaction.LocalityScroll