All Downloads are FREE. Search and download functionalities are using the official Maven repository.

marvin.gui.MarvinToolPanel Maven / Gradle / Ivy

The newest version!
/**
Marvin Project <2007-2013>
http://www.marvinproject.org

License information:
http://marvinproject.sourceforge.net/en/license.html

Discussion group:
https://groups.google.com/forum/#!forum/marvin-project
*/

package marvin.gui;

import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;

import marvin.plugin.MarvinToolPlugin;

public class MarvinToolPanel extends JPanel{
	
	// Definitions
	private final static int 	MAX_TOOLS = 50;
	
	// Interface Components
	private JButton				arrButtons[];

	// Image Panel
	private MarvinImagePanel	currentImagePanel;
	
	
	// Tools
	private MarvinToolPlugin 	arrTools[];
	private int					toolCounter;
	private int					currentTool;
	
	// ButtonHandler
	private ButtonHandler		buttonHandler;
	
	/**
	 * 
	 */
	public MarvinToolPanel(){
		toolCounter = 0;
		currentTool = 0;
		arrTools = new MarvinToolPlugin[MAX_TOOLS];
		arrButtons = new JButton[MAX_TOOLS];
		buttonHandler = new ButtonHandler();
	}
	
	public void setImagePanel(MarvinImagePanel ip){
		if(currentImagePanel != ip){
			currentImagePanel = ip;
		}
	}
	
	/**
	 * 
	 * @param tp
	 */
	public void addTool(MarvinToolPlugin tp){
		arrTools[toolCounter] = tp;
		
		arrButtons[toolCounter] = new JButton(tp.getIcon());
		arrButtons[toolCounter].setPreferredSize
			(new Dimension(tp.getIcon().getImage().getWidth(null)+10, tp.getIcon().getImage().getHeight(null)+10));		
		arrButtons[toolCounter].addActionListener(buttonHandler);
		
		add(arrButtons[toolCounter]);
		
		// Increment counter
		toolCounter++;
	}
	
	public MarvinToolPlugin getCurrentTool(){
		return arrTools[currentTool];
	}
	
	private class ButtonHandler implements ActionListener{
		public void actionPerformed(ActionEvent event){
			for(int i=0; i




© 2015 - 2024 Weber Informatics LLC | Privacy Policy