AutoCompletion#insertCompletion is now an atomic edit

git-svn-id: https://svn.code.sf.net/p/jailer/code/trunk@1483 3dd849cd-670e-4645-a7cd-dd197c8d0e81
This commit is contained in:
rwisser
2017-11-29 07:49:36 +00:00
parent 2d9200cd80
commit 5656fa29ca
5 changed files with 10 additions and 63 deletions
@@ -39,6 +39,7 @@ import net.sf.jailer.datamodel.Table;
import net.sf.jailer.ui.scrollmenu.JScrollPopupMenu;
import net.sf.jailer.ui.syntaxtextarea.DataModelBasedSQLCompletionProvider;
import net.sf.jailer.ui.syntaxtextarea.RSyntaxTextAreaWithSQLSyntaxStyle;
import net.sf.jailer.ui.syntaxtextarea.SQLAutoCompletion;
import net.sf.jailer.ui.syntaxtextarea.SQLCompletionProvider;
/**
@@ -88,8 +89,7 @@ public class ConditionEditor extends javax.swing.JDialog {
try {
provider = new DataModelBasedSQLCompletionProvider(null, dataModel);
provider.setDefaultClause(SQLCompletionProvider.Clause.WHERE);
AutoCompletion ac = new AutoCompletion(provider);
ac.install(editorPane);
new SQLAutoCompletion(provider, editorPane);
} catch (SQLException e) {
}
}
@@ -58,6 +58,7 @@ import net.sf.jailer.ui.databrowser.metadata.MetaDataSource;
import net.sf.jailer.ui.databrowser.sqlconsole.MetaDataBasedSQLCompletionProvider;
import net.sf.jailer.ui.syntaxtextarea.DataModelBasedSQLCompletionProvider;
import net.sf.jailer.ui.syntaxtextarea.RSyntaxTextAreaWithSQLSyntaxStyle;
import net.sf.jailer.ui.syntaxtextarea.SQLAutoCompletion;
import net.sf.jailer.util.SqlUtil;
/**
@@ -135,8 +136,7 @@ public class QueryBuilderDialog extends javax.swing.JDialog {
}
if (provider != null) {
AutoCompletion ac = new AutoCompletion(provider);
ac.install(sqlTextArea);
autoCompletion = new SQLAutoCompletion(provider, sqlTextArea);
}
} catch (SQLException e1) {
}
@@ -21,7 +21,6 @@ import java.sql.SQLException;
import javax.swing.JInternalFrame;
import javax.swing.JScrollPane;
import org.fife.ui.autocomplete.AutoCompletion;
import org.fife.ui.autocomplete.CompletionProvider;
import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea;
@@ -31,6 +30,7 @@ import net.sf.jailer.ui.databrowser.metadata.MetaDataSource;
import net.sf.jailer.ui.databrowser.sqlconsole.MetaDataBasedSQLCompletionProvider;
import net.sf.jailer.ui.syntaxtextarea.DataModelBasedSQLCompletionProvider;
import net.sf.jailer.ui.syntaxtextarea.RSyntaxTextAreaWithSQLSyntaxStyle;
import net.sf.jailer.ui.syntaxtextarea.SQLAutoCompletion;
/**
* Content UI of a row browser frame in SQL mode (as {@link JInternalFrame}s). Contains a
@@ -62,8 +62,7 @@ public class SQLBrowserContentPane extends javax.swing.JPanel {
}
if (provider != null) {
AutoCompletion ac = new AutoCompletion(provider);
ac.install(sqlEditorPane);
new SQLAutoCompletion(provider, sqlEditorPane);
}
} catch (SQLException e1) {
}
@@ -30,7 +30,6 @@ import javax.swing.SwingUtilities;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import org.fife.ui.autocomplete.AutoCompletion;
import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea;
import org.fife.ui.rtextarea.RTextScrollPane;
@@ -41,6 +40,7 @@ import net.sf.jailer.ui.databrowser.metadata.MetaDataSource;
import net.sf.jailer.ui.databrowser.sqlconsole.MetaDataBasedSQLCompletionProvider;
import net.sf.jailer.ui.databrowser.sqlconsole.SQLConsole;
import net.sf.jailer.ui.syntaxtextarea.RSyntaxTextAreaWithSQLSyntaxStyle;
import net.sf.jailer.ui.syntaxtextarea.SQLAutoCompletion;
import net.sf.jailer.util.SqlScriptExecutor;
/**
@@ -88,8 +88,7 @@ public class SQLDMLPanel extends javax.swing.JPanel {
};
try {
MetaDataBasedSQLCompletionProvider provider = new MetaDataBasedSQLCompletionProvider(session, metaDataSource);
AutoCompletion ac = new AutoCompletion(provider);
ac.install(sqlTextArea);
new SQLAutoCompletion(provider, sqlTextArea);
} catch (SQLException e) {
}
@@ -55,11 +55,6 @@ import javax.swing.text.BadLocationException;
import javax.swing.text.Document;
import javax.swing.text.Segment;
import org.fife.ui.autocomplete.AutoCompletion;
import org.fife.ui.autocomplete.BasicCompletion;
import org.fife.ui.autocomplete.Completion;
import org.fife.ui.autocomplete.CompletionCellRenderer;
import org.fife.ui.autocomplete.Util;
import org.fife.ui.rtextarea.RTextScrollPane;
import net.sf.jailer.ExecutionContext;
@@ -88,7 +83,7 @@ import net.sf.jailer.ui.databrowser.metadata.MDTable;
import net.sf.jailer.ui.databrowser.metadata.MetaDataPanel;
import net.sf.jailer.ui.databrowser.metadata.MetaDataSource;
import net.sf.jailer.ui.syntaxtextarea.RSyntaxTextAreaWithSQLSyntaxStyle;
import net.sf.jailer.ui.syntaxtextarea.SQLCompletionProvider;
import net.sf.jailer.ui.syntaxtextarea.SQLAutoCompletion;
import net.sf.jailer.ui.util.SmallButton;
import net.sf.jailer.util.CancellationException;
import net.sf.jailer.util.CancellationHandler;
@@ -225,54 +220,8 @@ public abstract class SQLConsole extends javax.swing.JPanel {
restoreHistory();
provider = new MetaDataBasedSQLCompletionProvider(session, metaDataSource);
AutoCompletion ac = new AutoCompletion(provider);
ac.install(editorPane);
ac.setListCellRenderer(new CompletionCellRenderer() {
@Override
public Component getListCellRendererComponent(JList list, Object value, int index, boolean selected,
boolean hasFocus) {
Component c = super.getListCellRendererComponent(list, value, index, selected, hasFocus);
if (c instanceof JLabel && value instanceof SQLCompletionProvider.SQLCompletion) {
((JLabel) c).setToolTipText(((SQLCompletionProvider.SQLCompletion) value).tooltip);
}
return c;
}
new SQLAutoCompletion(provider, editorPane);
protected void prepareForOtherCompletion(JList list,
Completion c, int index, boolean selected, boolean hasFocus) {
Color color = null;
if (c instanceof SQLCompletionProvider.SQLCompletion) {
color = ((SQLCompletionProvider.SQLCompletion) c).color;
}
StringBuilder sb = new StringBuilder("<html><nobr>");
if (!selected && color != null) {
sb.append("<font color='").append(Util.getHexString(color)).append("'>");
}
sb.append(c.getInputText());
if (!selected && color != null) {
sb.append("</font>");
}
if (c instanceof BasicCompletion) {
String definition = ((BasicCompletion)c).getShortDescription();
if (definition!=null) {
sb.append(" - ");
if (!selected) {
sb.append("<font color='").append(Util.getHexString(Color.gray)).append("'>");
}
sb.append(definition);
if (!selected) {
sb.append("</font>");
}
}
}
setText(sb.toString());
}
});
RTextScrollPane jScrollPane = new RTextScrollPane();
jScrollPane.setViewportView(editorPane);
editorPane.setGutter(jScrollPane.getGutter());