package jas2.util.moverlayeredpane;

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

public class MLPLabelFactory implements MLPObjectFactory {
	//
	//public interface methods
	//
	public void mousePressed(MouseEvent e, JPanel p) {
		dragStart = e.getPoint();
		tempLabel = new jas2.plot.EditableLabel("Click here to enter some text.","");
		switch (labelBorderDrawState) {
		case LabelBorderDrawStates.NONE :
			break;
		case LabelBorderDrawStates.THIN :
			tempLabel.setBorder(BorderFactory.createLineBorder(Color.black, 1));
			break;
		case LabelBorderDrawStates.THICK :
			tempLabel.setBorder(BorderFactory.createLineBorder(Color.black, 5));
			break;
		default :
		}
		tempLabel.setLocation(dragStart);
		tempLabel.setVisible(true);
		tempLabel.setRequestFocusEnabled(true);
		p.add(tempLabel);
	}
	public void mouseDragged(MouseEvent e, JPanel p) {
		Point end = e.getPoint();
		if ((end.x > dragStart.x) && (end.y > dragStart.y)) {
			tempLabel.setSize(end.x - dragStart.x, end.y - dragStart.y);
		}
		p.validate();
	}
	public void mouseReleased(MouseEvent e, JPanel p) {
		p.repaint();
	}
	//
	//other public methods
	//
	public int getLabelBorderDrawState() {
		return labelBorderDrawState;
	}
	public void setLabelBorderDrawState(int newState) {
		labelBorderDrawState = newState;
	}
	//
	//public constants
	//
	public interface LabelBorderDrawStates {
		int NONE = 0, THIN = 1, THICK = 2;
	}
	//
	//private member variables
	//
	private int labelBorderDrawState;
	private EditableLabel tempLabel;
	private Point dragStart;
}

 

Ads help maintain this website.