package org.topicquests.topicmap.ui;
import javax.swing.*;
import org.topicquests.topicmap.json.model.api.IJSONTopicDataProvider;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyAdapter;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2013</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class TextEditorDialog
extends JDialog {
private IEditorDialogListener host;
public TextEditorDialog() {
try {
jbInit();
}
catch (Exception ex) {
ex.printStackTrace();
}
}
public void setListener(IEditorDialogListener l) {
host = l;
}
private void jbInit() throws Exception {
this.setTitle("Editor");
this.setSize(new Dimension(600, 600));
this.setLayout(borderLayout1);
saveButton.setText("Save");
saveButton.addActionListener(new TextEditorTab_saveButton_actionAdapter(this));
jPanel1.setLayout(flowLayout1);
cancelButton.setText("Cancel");
cancelButton.addActionListener(new TextEditorTab_cancelButton_actionAdapter(this));
editArea.setText("");
editArea.setLineWrap(true);
editArea.addKeyListener(new TextEditorTab_editArea_keyAdapter(this));
this.add(jPanel1, java.awt.BorderLayout.SOUTH);
jPanel1.add(saveButton);
jPanel1.add(cancelButton);
this.add(jScrollPane1, java.awt.BorderLayout.CENTER);
jScrollPane1.getViewport().add(editArea);
// Center the window
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = this.getSize();
if (frameSize.height > screenSize.height) {
frameSize.height = screenSize.height;
}
if (frameSize.width > screenSize.width) {
frameSize.width = screenSize.width;
}
this.setLocation( (screenSize.width - frameSize.width) / 2,
(screenSize.height - frameSize.height) / 2);
}
boolean saveEnabled = false;
public void setTextToEdit(String text) {
saveButton.setEnabled(false);
saveEnabled = false;
editArea.setText(text);
this.setVisible(true);
}
BorderLayout borderLayout1 = new BorderLayout();
JPanel jPanel1 = new JPanel();
JScrollPane jScrollPane1 = new JScrollPane();
JButton saveButton = new JButton();
FlowLayout flowLayout1 = new FlowLayout();
JButton cancelButton = new JButton();
JTextArea editArea = new JTextArea();
public void saveButton_actionPerformed(ActionEvent e) {
host.acceptText(editArea.getText());
this.setVisible(false);
}
public void cancelButton_actionPerformed(ActionEvent e) {
this.setVisible(false);
}
public void editArea_keyTyped(KeyEvent e) {
if (!saveEnabled) {
saveButton.setEnabled(true);
saveEnabled = true;
}
}
}
class TextEditorTab_editArea_keyAdapter
extends KeyAdapter {
private TextEditorDialog adaptee;
TextEditorTab_editArea_keyAdapter(TextEditorDialog adaptee) {
this.adaptee = adaptee;
}
public void keyTyped(KeyEvent e) {
adaptee.editArea_keyTyped(e);
}
}
class TextEditorTab_cancelButton_actionAdapter
implements ActionListener {
private TextEditorDialog adaptee;
TextEditorTab_cancelButton_actionAdapter(TextEditorDialog adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.cancelButton_actionPerformed(e);
}
}
class TextEditorTab_saveButton_actionAdapter
implements ActionListener {
private TextEditorDialog adaptee;
TextEditorTab_saveButton_actionAdapter(TextEditorDialog adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.saveButton_actionPerformed(e);
}
}