⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cursorcontrolpanel.java

📁 JPowerGraph is a Java library for creating directed graphs for Swing. It supports graph movement, se
💻 JAVA
字号:
package net.sourceforge.jpowergraph.viewcontrols;

import java.awt.BorderLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
import javax.swing.JToggleButton;

import net.sourceforge.jpowergraph.lens.CursorLens;
import net.sourceforge.jpowergraph.lens.Lens;
import net.sourceforge.jpowergraph.lens.LensListener;
import net.sourceforge.powerswing.panel.PPanel;

/**
 * @author Mick Kerrigan
 *
 * Created on 05-Aug-2005
 * Committed by $Author: morcen $
 *
 * $Source: /cvsroot/jpowergraph/swing/src/net/sourceforge/jpowergraph/viewcontrols/CursorControlPanel.java,v $,
 * @version $Revision: 1.2 $ $Date: 2005/08/10 09:16:59 $
 */
public class CursorControlPanel extends JPanel {

    private JToggleButton moveGraph;
    private JToggleButton createEdge;
    
    private CursorLens draggingLens;
    
    /**
     * 
     */
    public CursorControlPanel(CursorLens theDraggingLens) {
        this(theDraggingLens, true);
    }
    
    public CursorControlPanel(CursorLens theDraggingLens, boolean theMoveGraph) {
        super();
        draggingLens = theDraggingLens;
        
        ImageIcon arrow = new ImageIcon(CursorControlPanel.class.getResource("arrow.gif"));
        ImageIcon cross = new ImageIcon(CursorControlPanel.class.getResource("cross.gif"));
        
        moveGraph = new JToggleButton(arrow, theMoveGraph);
        moveGraph.setBorder(BorderFactory.createEmptyBorder(5, 7, 5, 7));
        moveGraph.setEnabled(draggingLens != null);
        createEdge = new JToggleButton(cross, !theMoveGraph);
        createEdge.setBorder(BorderFactory.createEmptyBorder(6, 8, 4, 6));
        createEdge.setEnabled(draggingLens != null);
        setSelectedItemFromLens();
        
        this.setLayout(new BorderLayout());
        this.add(new PPanel(1, 2, 0, 2, new Object[]{
                "",     "0",        "0",
                "0",    moveGraph,  createEdge
        }));
        this.addActionListeners();
    }

    private void addActionListeners() {
        if (draggingLens != null && moveGraph != null){
            moveGraph.addItemListener(new ItemListener() {
                public void itemStateChanged(ItemEvent e) {
                    boolean b = moveGraph.isSelected();
                    if (draggingLens.isMoveGraph() != b){
                        draggingLens.setMoveGraph(b);
                    }
                }
            });
        }
        
        if (draggingLens != null && createEdge != null){
            createEdge.addItemListener(new ItemListener() {
                public void itemStateChanged(ItemEvent e) {
                    boolean b = createEdge.isSelected();
                    if (draggingLens.isCreateEdge() != b){
                        draggingLens.setCreateEdge(b);
                    }
                }
            });
        }
        
        if (draggingLens != null){
            draggingLens.addLensListener(new LensListener() {
                public void lensUpdated(Lens lens) {
                    setSelectedItemFromLens();
                }
            });
        }
    }

    protected void setSelectedItemFromLens() {
        if (draggingLens != null && moveGraph != null){
            moveGraph.setSelected(draggingLens.isMoveGraph());
        }
        if (draggingLens != null && createEdge != null){
            createEdge.setSelected(draggingLens.isCreateEdge());
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -