/***************************************************
*
* cismet GmbH, Saarbruecken, Germany
*
* ... and it just works.
*
****************************************************/
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package de.cismet.cismap.commons.interaction;
import org.jdom.Document;
import org.jdom.input.SAXBuilder;
import java.awt.event.ActionEvent;
import java.io.StringReader;
import de.cismet.cismap.commons.featureservice.FeatureServiceUtilities;
/**
* DOCUMENT ME!
*
* @author therter
* @version $Revision$, $Date$
*/
public class DefaultXMLQueryButtonAction extends DefaultQueryButtonAction {
//~ Instance initializers --------------------------------------------------
{
posCorrection = -1;
}
//~ Constructors -----------------------------------------------------------
/**
* Creates a new DefaultXMLQueryButtonAction object.
*/
public DefaultXMLQueryButtonAction() {
super();
}
/**
* Creates a new DefaultXMLQueryButtonAction object.
*
* @param text DOCUMENT ME!
*/
public DefaultXMLQueryButtonAction(final String text) {
super(text);
}
/**
* Creates a new DefaultXMLQueryButtonAction object.
*
* @param queryText DOCUMENT ME!
* @param text DOCUMENT ME!
*/
public DefaultXMLQueryButtonAction(final String queryText, final String text) {
super(queryText, text);
}
/**
* Creates a new DefaultXMLQueryButtonAction object.
*
* @param text DOCUMENT ME!
* @param width DOCUMENT ME!
*/
public DefaultXMLQueryButtonAction(final String text, final int width) {
super(text, width);
}
/**
* Creates a new DefaultXMLQueryButtonAction object.
*
* @param queryText DOCUMENT ME!
* @param text DOCUMENT ME!
* @param width DOCUMENT ME!
*/
public DefaultXMLQueryButtonAction(final String queryText, final String text, final int width) {
super(queryText, text, width);
}
/**
* Creates a new DefaultXMLQueryButtonAction object.
*
* @param text DOCUMENT ME!
* @param width DOCUMENT ME!
* @param posCorrection DOCUMENT ME!
*/
public DefaultXMLQueryButtonAction(final String text, final int width, final int posCorrection) {
super(text, width, posCorrection);
}
/**
* Creates a new DefaultXMLQueryButtonAction object.
*
* @param queryText DOCUMENT ME!
* @param text DOCUMENT ME!
* @param width DOCUMENT ME!
* @param posCorrection DOCUMENT ME!
*/
public DefaultXMLQueryButtonAction(final String queryText,
final String text,
final int width,
final int posCorrection) {
super(queryText, text, width, posCorrection);
}
//~ Methods ----------------------------------------------------------------
@Override
public void actionPerformed(final ActionEvent e) {
if (queryTextArea.getSelectionEnd() == 0) {
AppendString(getStartTag(queryText) + getEndTag(queryText));
CorrectCarret(-1 * getEndTag(queryText).length());
} else {
final int start = queryTextArea.getSelectionStart();
final int end = queryTextArea.getSelectionEnd();
queryTextArea.insert(getStartTag(queryText), start);
queryTextArea.insert(getEndTag(queryText), end + getStartTag(queryText).length());
// jTextArea1.setCaretPosition(end + 2);
if (start == end) {
CorrectCarret(posCorrection);
} else {
CorrectCarret(getEndTag(queryText).length() + 1);
}
}
// // Test
// String beforeCaret = queryTextArea.getText().substring(0, queryTextArea.getCaretPosition());
//
// try {
// SAXBuilder builder = new SAXBuilder();
// Document d = builder.build(new StringReader("<root>" + queryTextArea.getText() + "</root>"));
// String xmlText = FeatureServiceUtilities.elementToString(d.getRootElement());
// xmlText = xmlText.substring(xmlText.indexOf("\n"), xmlText.lastIndexOf("\n"));
// queryTextArea.setText(xmlText);
// } catch (Exception ex) {
// //nothing to do
// }
// //Ende Test
}
/**
* DOCUMENT ME!
*
* @param name DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
private String getStartTag(final String name) {
return "<" + name + ">";
}
/**
* DOCUMENT ME!
*
* @param name DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
private String getEndTag(final String name) {
return "</" + name + ">";
}
}