/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package automenta.spacenet.space.widget.text;
import automenta.spacenet.space.control.Pressable;
import automenta.spacenet.space.geom.text3d.Font3D;
import automenta.spacenet.space.widget.panel.DefaultPanelModel;
import automenta.spacenet.var.physical.Color;
import automenta.spacenet.var.string.StringVar;
import com.ardor3d.intersection.PickData;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
/**
*
* @author seh
*/
public class TextEditPanel extends TextPanel implements Pressable {
public static class StringVarEditPanel extends JPanel implements ActionListener {
private final StringVar text;
private final JTextArea textArea;
private StringVarEditPanel(StringVar text) {
super(new BorderLayout());
this.text = text;
textArea = new JTextArea(text.s());
textArea.setWrapStyleWord(true);
textArea.setLineWrap(true);
add(textArea, BorderLayout.CENTER);
JButton updateButton = new JButton("Update");
updateButton.addActionListener(this);
add(updateButton, BorderLayout.SOUTH);
}
@Override public void actionPerformed(ActionEvent e) {
String newText = textArea.getText();
text.set(newText);
}
}
public TextEditPanel(Font3D font, StringVar text) {
//TODO HACK use a class DefaulTextEditPanelModel
super(new DefaultPanelModel(Color.White, Color.White), font, text);
}
public TextEditPanel(Font3D font, String text) {
this(font, new StringVar(text));
}
@Override
public void onPressStart(PickData pick) {
}
@Override
public void onPressStop(PickData pick) {
//TODO hack this opens a swing window to edit it...
JFrame frame = new JFrame("Edit: " + getText());
frame.getContentPane().add(new StringVarEditPanel(getText()));
frame.setSize(300, 300);
frame.setVisible(true);
}
}