package jas2.util.multifunctionpanel;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.event.*;
import jas2.util.multibuttontoolbar.*;
import jas2.plot.EditableLabel;

/**
 * The annotation toolbar for a MultiFunctionPanel.
 * 
 * @author Peter Armstrong
 * @author Tony Johnson
 */
public class AnnotationToolBar extends jas2.util.multibuttontoolbar.MultiToolBar {
	public AnnotationToolBar() {
		JButton normalCursor			= new JButton(jas2.util.JASIcon.create(this, "images/defaultcursor.gif"));
		JButton noArrows				= new JButton(jas2.util.JASIcon.create(this, "images/linenoarrows.gif"));
		JButton arrowOnFront			= new JButton(jas2.util.JASIcon.create(this, "images/linefrontarrow.gif"));
		JButton arrowOnBack				= new JButton(jas2.util.JASIcon.create(this, "images/linebackarrow.gif"));
		JButton arrowsOnFrontAndBack	= new JButton(jas2.util.JASIcon.create(this, "images/linebotharrows.gif"));
		JButton arrowOnFrontFilled		= new JButton(jas2.util.JASIcon.create(this, "images/linefrontfilledarrow.gif"));
		JButton arrowOnBackFilled		= new JButton(jas2.util.JASIcon.create(this, "images/linebackfilledarrow.gif"));
		JButton arrowsOnFrontAndBackFilled = new JButton(jas2.util.JASIcon.create(this, "images/linebothfilledarrows.gif"));
		JButton more					= new JButton(jas2.util.JASIcon.create(this, "images/more.gif"));
		JButton labelNoBorder			= new JButton(jas2.util.JASIcon.create(this, "images/labelnoborder.gif"));
		JButton labelThinBorder			= new JButton(jas2.util.JASIcon.create(this, "images/labelthinborder.gif"));
		JButton labelThickBorder		= new JButton(jas2.util.JASIcon.create(this, "images/labelthickborder.gif"));
		
		normalCursor.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				jas2.swingstudio.JavaAnalysisStudio.getApp().getMFP().setCursorState(MultiFunctionPanel.CursorStates.DEFAULT);
			}
		});
		noArrows.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				getTheMFP().setCursorState(MultiFunctionPanel.CursorStates.ARROW_DRAW);
				getTheMFP().setArrowHeadDrawState(MultiFunctionPanel.ArrowheadDrawStates.NONE);
			}
		});
		arrowOnFront.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				getTheMFP().setCursorState(MultiFunctionPanel.CursorStates.ARROW_DRAW);
				getTheMFP().setArrowHeadDrawState(MultiFunctionPanel.ArrowheadDrawStates.FINISH);
				getTheMFP().setArrowHeadFillState(false);
			}
		});
		arrowOnFrontFilled.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				getTheMFP().setCursorState(MultiFunctionPanel.CursorStates.ARROW_DRAW);
				getTheMFP().setArrowHeadDrawState(MultiFunctionPanel.ArrowheadDrawStates.FINISH);
				getTheMFP().setArrowHeadFillState(true);
			}
		});
		arrowOnBack.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				getTheMFP().setCursorState(MultiFunctionPanel.CursorStates.ARROW_DRAW);
				getTheMFP().setArrowHeadDrawState(MultiFunctionPanel.ArrowheadDrawStates.START);
				getTheMFP().setArrowHeadFillState(false);
			}
		});
		arrowOnBackFilled.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				getTheMFP().setCursorState(MultiFunctionPanel.CursorStates.ARROW_DRAW);
				getTheMFP().setArrowHeadDrawState(MultiFunctionPanel.ArrowheadDrawStates.START);
				getTheMFP().setArrowHeadFillState(true);
			}
		});
		arrowsOnFrontAndBack.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				getTheMFP().setCursorState(MultiFunctionPanel.CursorStates.ARROW_DRAW);
				getTheMFP().setArrowHeadDrawState(MultiFunctionPanel.ArrowheadDrawStates.BOTH);
				getTheMFP().setArrowHeadFillState(false);
			}
		});
		arrowsOnFrontAndBackFilled.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				getTheMFP().setCursorState(MultiFunctionPanel.CursorStates.ARROW_DRAW);
				getTheMFP().setArrowHeadDrawState(MultiFunctionPanel.ArrowheadDrawStates.BOTH);
				getTheMFP().setArrowHeadFillState(true);
			}
		});
		more.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				System.out.println("Show dialog box");
				getTheMFP().showArrowConfigDialog();
			}
		});
		labelNoBorder.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				getTheMFP().setCursorState(MultiFunctionPanel.CursorStates.LABEL_DRAW);
				getTheMFP().setLabelBorderDrawState(MultiFunctionPanel.LabelBorderDrawStates.NONE);
			}
		});
		labelThinBorder.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				getTheMFP().setCursorState(MultiFunctionPanel.CursorStates.LABEL_DRAW);
				getTheMFP().setLabelBorderDrawState(MultiFunctionPanel.LabelBorderDrawStates.THIN);
			}
		});
		labelThickBorder.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				getTheMFP().setCursorState(MultiFunctionPanel.CursorStates.LABEL_DRAW);
				getTheMFP().setLabelBorderDrawState(MultiFunctionPanel.LabelBorderDrawStates.THICK);
			}
		});
		
		jas2.util.multibuttontoolbar.MultiButtonGroup arrow =
			new jas2.util.multibuttontoolbar.MultiButtonGroup(noArrows);
		arrow.add(arrowOnFront);
		arrow.add(arrowOnBack);
		arrow.add(arrowsOnFrontAndBack);
		arrow.add(arrowOnFrontFilled);
		arrow.add(arrowOnBackFilled);
		arrow.add(arrowsOnFrontAndBackFilled);
		arrow.add(more);

		jas2.util.multibuttontoolbar.MultiButtonGroup label =
			new jas2.util.multibuttontoolbar.MultiButtonGroup(labelNoBorder);
		label.add(labelThinBorder);
		label.add(labelThickBorder);
		
		add(normalCursor);
		add(arrow);
		add(label);
		setName("testMBT");
	}
	private MultiFunctionPanel getTheMFP() {
		return jas2.swingstudio.JavaAnalysisStudio.getApp().getMFP();
	}
}

 

Ads help maintain this website.