You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2009/04/01 08:54:12 UTC
svn commit: r760792 - in
/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne:
modeler/editor/EjbqlQueryScriptsTab.java modeler/editor/EjbqlTabbedView.java
swing/components/textpane/JCayenneTextPane.java
Author: aadamchik
Date: Wed Apr 1 06:54:12 2009
New Revision: 760792
URL: http://svn.apache.org/viewvc?rev=760792&view=rev
Log:
CAY-1164 Implement EJBQL query support in the Modeler
ErrorsInJCayenneTextPane.txt patch by Olga... still work in progress
Modified:
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/EjbqlQueryScriptsTab.java
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/EjbqlTabbedView.java
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/swing/components/textpane/JCayenneTextPane.java
Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/EjbqlQueryScriptsTab.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/EjbqlQueryScriptsTab.java?rev=760792&r1=760791&r2=760792&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/EjbqlQueryScriptsTab.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/EjbqlQueryScriptsTab.java Wed Apr 1 06:54:12 2009
@@ -71,6 +71,34 @@
}
});
+
+ scriptArea.getDocument().addDocumentListener(new DocumentListener() {
+
+ public void changedUpdate(DocumentEvent e) {
+ }
+
+ public void insertUpdate(DocumentEvent e) {
+ try {
+ String text = scriptArea
+ .getDocument()
+ .getText(e.getOffset(), 1)
+ .toString();
+ if (text.equals(" ") || text.equals("\n") || text.equals("\t")) {
+ getQuery().setEjbqlStatement(scriptArea.getText());
+ validateEJBQL();
+ }
+ }
+ catch (BadLocationException e1) {
+ e1.printStackTrace();
+ }
+ }
+
+ public void removeUpdate(DocumentEvent e) {
+ getQuery().setEjbqlStatement(scriptArea.getText());
+ scriptArea.removeHighlightText();
+ validateEJBQL();
+ }
+ });
setLayout(new BorderLayout());
add(scriptArea, BorderLayout.WEST);
add(scriptArea.scrollPane, BorderLayout.CENTER);
@@ -112,10 +140,10 @@
if (query == null) {
return;
}
-
+ String testTemp = null;
if (text != null) {
- text = text.trim();
- if (text.length() == 0) {
+ testTemp = text.trim();
+ if (testTemp.length() == 0) {
text = null;
}
}
@@ -148,12 +176,16 @@
getQuery(),
mediator.getCurrentDataDomain());
if (positionException != null) {
-
- scriptArea.setHighlightText(
- positionException.getBeginLine(),
- positionException.getBeginColumn(),
- positionException.getLength());
-
+ if (positionException.getBeginLine() != null
+ || positionException.getBeginColumn() != null
+ || positionException.getLength() != null) {
+
+ scriptArea.setHighlightText(
+ positionException.getBeginLine(),
+ positionException.getBeginColumn(),
+ positionException.getLength(),
+ positionException.getMessage());
+ }
}
}
}
Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/EjbqlTabbedView.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/EjbqlTabbedView.java?rev=760792&r1=760791&r2=760792&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/EjbqlTabbedView.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/EjbqlTabbedView.java Wed Apr 1 06:54:12 2009
@@ -48,7 +48,7 @@
addTab("General", new JScrollPane(mainTab));
this.scriptsTab = new EjbqlQueryScriptsTab(mediator);
- addTab("EJBQL Scripts", scriptsTab);
+ addTab("EJBQL", scriptsTab);
}
private void initController() {
Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/swing/components/textpane/JCayenneTextPane.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/swing/components/textpane/JCayenneTextPane.java?rev=760792&r1=760791&r2=760792&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/swing/components/textpane/JCayenneTextPane.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/swing/components/textpane/JCayenneTextPane.java Wed Apr 1 06:54:12 2009
@@ -1,14 +1,14 @@
package org.apache.cayenne.swing.components.textpane;
import java.awt.Color;
+import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.Rectangle;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
+import java.awt.event.MouseEvent;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
@@ -31,7 +31,9 @@
protected Highlighter.HighlightPainter painter;
private JTextPaneScrollable pane;
public JScrollPane scrollPane;
+
public boolean repaint;
+
private static Log logObj = LogFactory.getLog(Main.class);
public void setText(String text) {
@@ -129,9 +131,12 @@
public void insertUpdate(DocumentEvent evt) {
try {
- removeHighlightText();
- if (pane.getText(evt.getOffset(), 1).toString().equals("/")
- || pane.getText(evt.getOffset(), 1).toString().equals("*")) {
+ String text = pane.getText(evt.getOffset(), 1).toString();
+ if (!(text.equals(" ") || text.equals("\n") || text.equals("\t"))) {
+ removeHighlightText();
+ }
+ if (text.equals("/") || text.equals("*")) {
+ removeHighlightText();
pane.repaint();
}
}
@@ -141,7 +146,6 @@
}
public void removeUpdate(DocumentEvent evt) {
- removeHighlightText();
}
public void changedUpdate(DocumentEvent evt) {
@@ -156,24 +160,25 @@
highlighter.addHighlight(lastIndex, endIndex, painter);
}
- public void setHighlightText(int line, int lastIndex, int size) {
- int k = 0;
- try {
- Matcher matcherTab = Pattern.compile("\t").matcher(
- pane.getText(getPosition(line, 0), getPosition(line, lastIndex)));
- while (matcherTab.find()) {
- k += 7;
- }
- }
- catch (BadLocationException e1) {
- logObj.warn("Error: ", e1);
- }
+ /*
+ * set underlines text in JCayenneTextPane
+ *
+ * @param int line - starting line for underlined text
+ *
+ * @param int lastIndex - starting position in line for underlined text
+ *
+ * @param int size
+ *
+ * @param String message - text for toolTip, contains the text of the error
+ */
+
+ public void setHighlightText(int line, int lastIndex, int size, String message) {
try {
- int position = getPosition(line, lastIndex-k);
+ int position = getPosition(line, lastIndex);
int positionEnd = position + size;
Highlighter highlighter = pane.getHighlighter();
removeHighlightText(highlighter);
- highlighter.addHighlight(position, positionEnd, painter);
+ highlighter.addHighlight(position, positionEnd, painter);
}
catch (BadLocationException e) {
logObj.warn("Error: ", e);