package jas2.util.moverlayeredpane;
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 MoverLayeredPane.
*
* @author Peter Armstrong
* @author Tony Johnson
*/
public class AnnotationToolBar extends jas2.util.multibuttontoolbar.MultiToolBar {
/**
*
*/
private static final long serialVersionUID = 1L;
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) {
getTheMLP().setCursorState(MoverLayeredPane.CursorStates.OBJECT_SELECTION);
}
});
noArrows.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
getTheMLP().setCursorState(MoverLayeredPane.CursorStates.OBJECT_CREATION);
getTheArrowFactory().setArrowHeadDrawState(MLPArrowFactory.ArrowheadDrawStates.NONE);
getTheMLP().setMLPObjectFactory(getTheArrowFactory());
}
});
arrowOnFront.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
getTheMLP().setCursorState(MoverLayeredPane.CursorStates.OBJECT_CREATION);
getTheArrowFactory().setArrowHeadDrawState(MLPArrowFactory.ArrowheadDrawStates.FINISH);
getTheArrowFactory().setArrowHeadFillState(false);
getTheMLP().setMLPObjectFactory(getTheArrowFactory());
}
});
arrowOnFrontFilled.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
getTheMLP().setCursorState(MoverLayeredPane.CursorStates.OBJECT_CREATION);
getTheArrowFactory().setArrowHeadDrawState(MLPArrowFactory.ArrowheadDrawStates.FINISH);
getTheArrowFactory().setArrowHeadFillState(true);
getTheMLP().setMLPObjectFactory(getTheArrowFactory());
}
});
arrowOnBack.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
getTheMLP().setCursorState(MoverLayeredPane.CursorStates.OBJECT_CREATION);
getTheArrowFactory().setArrowHeadDrawState(MLPArrowFactory.ArrowheadDrawStates.START);
getTheArrowFactory().setArrowHeadFillState(false);
getTheMLP().setMLPObjectFactory(getTheArrowFactory());
}
});
arrowOnBackFilled.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
getTheMLP().setCursorState(MoverLayeredPane.CursorStates.OBJECT_CREATION);
getTheArrowFactory().setArrowHeadDrawState(MLPArrowFactory.ArrowheadDrawStates.START);
getTheArrowFactory().setArrowHeadFillState(true);
getTheMLP().setMLPObjectFactory(getTheArrowFactory());
}
});
arrowsOnFrontAndBack.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
getTheMLP().setCursorState(MoverLayeredPane.CursorStates.OBJECT_CREATION);
getTheArrowFactory().setArrowHeadDrawState(MLPArrowFactory.ArrowheadDrawStates.BOTH);
getTheArrowFactory().setArrowHeadFillState(false);
getTheMLP().setMLPObjectFactory(getTheArrowFactory());
}
});
arrowsOnFrontAndBackFilled.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
getTheMLP().setCursorState(MoverLayeredPane.CursorStates.OBJECT_CREATION);
getTheArrowFactory().setArrowHeadDrawState(MLPArrowFactory.ArrowheadDrawStates.BOTH);
getTheArrowFactory().setArrowHeadFillState(true);
getTheMLP().setMLPObjectFactory(getTheArrowFactory());
}
});
more.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("Show dialog box");
getTheArrowFactory().showArrowConfigDialog();
getTheMLP().setMLPObjectFactory(getTheArrowFactory());
}
});
labelNoBorder.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
getTheMLP().setCursorState(MoverLayeredPane.CursorStates.OBJECT_CREATION);
getTheLabelFactory().setLabelBorderDrawState(MLPLabelFactory.LabelBorderDrawStates.NONE);
getTheMLP().setMLPObjectFactory(getTheLabelFactory());
}
});
labelThinBorder.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
getTheMLP().setCursorState(MoverLayeredPane.CursorStates.OBJECT_CREATION);
getTheLabelFactory().setLabelBorderDrawState(MLPLabelFactory.LabelBorderDrawStates.THIN);
getTheMLP().setMLPObjectFactory(getTheLabelFactory());
}
});
labelThickBorder.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
getTheMLP().setCursorState(MoverLayeredPane.CursorStates.OBJECT_CREATION);
getTheLabelFactory().setLabelBorderDrawState(MLPLabelFactory.LabelBorderDrawStates.THICK);
getTheMLP().setMLPObjectFactory(getTheLabelFactory());
}
});
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");
}
//
//convenience methods (save.a.lot.of.typing)
//
private MLPArrowFactory getTheArrowFactory() {
return jas2.swingstudio.JavaAnalysisStudio.getApp().getTheArrowFactory();
}
private MLPLabelFactory getTheLabelFactory() {
return jas2.swingstudio.JavaAnalysisStudio.getApp().getTheLabelFactory();
}
private MoverLayeredPane getTheMLP() {
return jas2.swingstudio.JavaAnalysisStudio.getApp().getMLP();
}
}
Ads help maintain this website.