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

📄 nodesizecontrolpanel.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.Lens;
import net.sourceforge.jpowergraph.lens.LensListener;
import net.sourceforge.jpowergraph.lens.NodeSizeLens;
import net.sourceforge.jpowergraph.painters.NodePainter;
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/NodeSizeControlPanel.java,v $,
 * @version $Revision: 1.2 $ $Date: 2005/08/10 09:16:59 $
 */
public class NodeSizeControlPanel extends JPanel {
    
    private JToggleButton smallNodes;
    private JToggleButton largeNodes;
    
    private NodeSizeLens nodeSizeLens;
    
    /**
     * 
     */
    public NodeSizeControlPanel(NodeSizeLens theNodeSizeLens) {
        this(theNodeSizeLens, NodePainter.LARGE);
    }
    
    public NodeSizeControlPanel(NodeSizeLens theNodeSizeLens, Integer theNodeSizeValue) {
        super();
        nodeSizeLens = theNodeSizeLens;
        
        ImageIcon small = new ImageIcon(CursorControlPanel.class.getResource("small.gif"));
        ImageIcon large = new ImageIcon(CursorControlPanel.class.getResource("large.gif"));
        
        largeNodes = new JToggleButton(large, true);
        largeNodes.setBorder(BorderFactory.createEmptyBorder(5, 7, 5, 7));
        largeNodes.setEnabled(nodeSizeLens != null);
        smallNodes = new JToggleButton(small, false);
        smallNodes.setBorder(BorderFactory.createEmptyBorder(5, 7, 5, 7));
        smallNodes.setEnabled(nodeSizeLens != null);
        setSelectedItemFromLens();
        
        this.setLayout(new BorderLayout());
        this.add(new PPanel(1, 2, 0, 2, new Object[]{
                "",     "0",        "0",
                "0",    largeNodes, smallNodes
        }));
        this.addActionListeners();
    }

    /**
     * @param theNodeSizeValue
     */
    private void select(Integer theNodeSizeValue) {
        smallNodes.setSelected(theNodeSizeValue == NodePainter.SMALL);
        largeNodes.setSelected(theNodeSizeValue == NodePainter.LARGE);
    }

    private void addActionListeners() {
        if (nodeSizeLens != null && smallNodes != null){
            smallNodes.addItemListener(new ItemListener() {
                public void itemStateChanged(ItemEvent e) {
                    int value = -1;
                    if (smallNodes.isSelected()){
                        value = NodePainter.SMALL;
                    }
                    else{
                        value = NodePainter.LARGE;
                    }
                    
                    if (nodeSizeLens.getNodeSize() != value){
                        nodeSizeLens.setNodeSize(value);
                    }
                }
            });
        }
        
        if (nodeSizeLens != null && largeNodes != null){
            largeNodes.addItemListener(new ItemListener() {
                public void itemStateChanged(ItemEvent e) {
                    int value = -1;
                    if (largeNodes.isSelected()){
                        value = NodePainter.LARGE;
                    }
                    else{
                        value = NodePainter.SMALL;
                    }
                    
                    if (nodeSizeLens.getNodeSize() != value){
                        nodeSizeLens.setNodeSize(value);
                    }
                }
            });
        }
        
        if (nodeSizeLens != null){
            nodeSizeLens.addLensListener(new LensListener() {
                public void lensUpdated(Lens lens) {
                    setSelectedItemFromLens();
                }
            });
        }
    }

    protected void setSelectedItemFromLens() {
        if (nodeSizeLens != null && largeNodes != null && smallNodes != null){
            select(nodeSizeLens.getNodeSize());
        }
    }
}

⌨️ 快捷键说明

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