You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by nt...@apache.org on 2017/06/30 15:06:19 UTC
[3/4] cayenne git commit: Minor code cleanup + release notes
Minor code cleanup + release notes
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/244bb456
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/244bb456
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/244bb456
Branch: refs/heads/master
Commit: 244bb45695381a88faccd0be419954cf971bedb8
Parents: 8712d98
Author: Nikita Timofeev <st...@gmail.com>
Authored: Fri Jun 30 18:05:29 2017 +0300
Committer: Nikita Timofeev <st...@gmail.com>
Committed: Fri Jun 30 18:05:29 2017 +0300
----------------------------------------------------------------------
docs/doc/src/main/resources/RELEASE-NOTES.txt | 3 +
.../modeler/editor/EjbqlQueryScriptsTab.java | 33 +++-----
.../modeler/editor/SQLTemplateScriptsTab.java | 88 +++++++++-----------
.../components/textpane/JCayenneTextPane.java | 22 +++++
4 files changed, 76 insertions(+), 70 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/244bb456/docs/doc/src/main/resources/RELEASE-NOTES.txt
----------------------------------------------------------------------
diff --git a/docs/doc/src/main/resources/RELEASE-NOTES.txt b/docs/doc/src/main/resources/RELEASE-NOTES.txt
index 53d9574..4496ea4 100644
--- a/docs/doc/src/main/resources/RELEASE-NOTES.txt
+++ b/docs/doc/src/main/resources/RELEASE-NOTES.txt
@@ -17,6 +17,9 @@ CAY-2329 Update project dependencies
Bug Fixes:
+CAY-2318 Modeler: Query. Exception after Undo clicking
+CAY-2319 Modeler: Embeddable > Attributes. Undo does not cancel pasted objects
+CAY-2323 Modeler: Graph. No warning while saving the image with existing name
----------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/244bb456/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/EjbqlQueryScriptsTab.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/EjbqlQueryScriptsTab.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/EjbqlQueryScriptsTab.java
index 25c6094..9f56474 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/EjbqlQueryScriptsTab.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/EjbqlQueryScriptsTab.java
@@ -41,9 +41,13 @@ import org.apache.cayenne.map.QueryDescriptor;
import org.apache.cayenne.swing.components.textpane.JCayenneTextPane;
import org.apache.cayenne.swing.components.textpane.syntax.EJBQLSyntaxConstant;
import org.apache.cayenne.util.Util;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class EjbqlQueryScriptsTab extends JPanel implements DocumentListener {
+ private static final Logger logger = LoggerFactory.getLogger(EjbqlQueryScriptsTab.class);
+
protected ProjectController mediator;
protected JCayenneTextPane scriptArea;
private boolean updateDisabled;
@@ -55,17 +59,7 @@ public class EjbqlQueryScriptsTab extends JPanel implements DocumentListener {
}
void displayScript() {
- EJBQLQueryDescriptor query = getQuery();
- Document document = scriptArea.getDocument();;
- String text = query.getEjbql();
- try {
- if(!document.getText(0, document.getLength()).equals(query.getEjbql())) {
- document.remove(0, document.getLength());
- document.insertString(0, text, null);
- }
- } catch (BadLocationException e) {
- e.printStackTrace();
- }
+ scriptArea.setDocumentTextDirect(getQuery().getEjbql());
updateDisabled = false;
}
@@ -82,21 +76,16 @@ public class EjbqlQueryScriptsTab extends JPanel implements DocumentListener {
try {
String text = scriptArea.getDocument().getText(e.getOffset(), 1);
if (text.equals(" ") || text.equals("\n") || text.equals("\t")) {
- getQuery().setEjbql(scriptArea.getText());
+ getQuery().setEjbql(scriptArea.getDocumentTextDirect());
validateEJBQL();
}
- } catch (BadLocationException e1) {
- e1.printStackTrace();
+ } catch (BadLocationException ex) {
+ logger.warn("Error reading document", ex);
}
}
public void removeUpdate(DocumentEvent e) {
- try {
- String text = scriptArea.getDocument().getText(0,scriptArea.getDocument().getLength());
- getQuery().setEjbql(text);
- } catch (BadLocationException e1) {
- e1.printStackTrace();
- }
+ getQuery().setEjbql(scriptArea.getDocumentTextDirect());
validateEJBQL();
}
});
@@ -173,8 +162,8 @@ public class EjbqlQueryScriptsTab extends JPanel implements DocumentListener {
Document doc = e.getDocument();
try {
setEJBQL(doc.getText(0, doc.getLength()));
- } catch (BadLocationException e1) {
- e1.printStackTrace();
+ } catch (BadLocationException ex) {
+ logger.warn("Error reading document", ex);
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/244bb456/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/SQLTemplateScriptsTab.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/SQLTemplateScriptsTab.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/SQLTemplateScriptsTab.java
index dc41c57..90f8451 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/SQLTemplateScriptsTab.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/SQLTemplateScriptsTab.java
@@ -31,6 +31,8 @@ import org.apache.cayenne.modeler.util.JUndoableCayenneTextPane;
import org.apache.cayenne.swing.components.textpane.JCayenneTextPane;
import org.apache.cayenne.swing.components.textpane.syntax.SQLSyntaxConstants;
import org.apache.cayenne.util.Util;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import javax.swing.DefaultComboBoxModel;
import javax.swing.DefaultListCellRenderer;
@@ -60,11 +62,12 @@ import java.util.Map;
public class SQLTemplateScriptsTab extends JPanel {
private static final String DEFAULT_LABEL = "Default";
+ private static final Logger logger = LoggerFactory.getLogger(SQLTemplateScriptsTab.class);
protected ProjectController mediator;
- protected JList scripts;
- protected List keys;
+ protected JList<String> scripts;
+ protected List<String> keys;
protected PanelBuilder builder;
protected CellConstraints cc;
protected JCayenneTextPane textPane;
@@ -89,15 +92,15 @@ public class SQLTemplateScriptsTab extends JPanel {
}
};
- scripts = new JList();
+ scripts = new JList<>();
scripts.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
scripts.setCellRenderer(new DbAdapterListRenderer(DbAdapterInfo.getStandardAdapterLabels()));
- keys = new ArrayList(DbAdapterInfo.getStandardAdapters().length + 1);
+ keys = new ArrayList<>(DbAdapterInfo.getStandardAdapters().length + 1);
keys.addAll(Arrays.asList(DbAdapterInfo.getStandardAdapters()));
Collections.sort(keys);
keys.add(0, DEFAULT_LABEL);
- scripts.setModel(new DefaultComboBoxModel(keys.toArray()));
+ scripts.setModel(new DefaultComboBoxModel<>(keys.toArray(new String[0])));
// assemble
cc = new CellConstraints();
@@ -174,18 +177,16 @@ public class SQLTemplateScriptsTab extends JPanel {
return;
}
- String key = (String) scripts.getSelectedValue();
+ String key = scripts.getSelectedValue();
if (key == null) {
return;
}
- boolean exist = true;
+ boolean exist = false;
for (JCayenneTextPane textPane: panes) {
if (textPane.getName().equals(key)) {
exist = true;
break;
- } else {
- exist = false;
}
}
@@ -202,15 +203,7 @@ public class SQLTemplateScriptsTab extends JPanel {
for (final JCayenneTextPane textPane: panes) {
if (key.equals(textPane.getName())) {
- Document document = textPane.getDocument();
- try {
- if(!document.getText(0, document.getLength()).equals(text)) {
- document.remove(0, document.getLength());
- document.insertString(0, text, null);
- }
- } catch (BadLocationException e) {
- e.printStackTrace();
- }
+ textPane.setDocumentTextDirect(text);
textPane.getPane().setVisible(true);
textPane.getPane().setEditable(true);
} else {
@@ -221,45 +214,44 @@ public class SQLTemplateScriptsTab extends JPanel {
}
void setSQL(DocumentEvent e, String key) {
- Document doc = e.getDocument();
+ if (key == null) {
+ return;
+ }
- try {
- String text = doc.getText(0, doc.getLength());
+ SQLTemplateDescriptor query = getQuery();
+ if (query == null) {
+ return;
+ }
- SQLTemplateDescriptor query = getQuery();
+ Document doc = e.getDocument();
+ String text = null;
- if (query == null) {
- return;
- }
+ try {
+ text = doc.getText(0, doc.getLength());
+ } catch (BadLocationException ex) {
+ logger.warn("Error reading document", ex);
+ }
- if (key == null) {
- return;
+ if (text != null) {
+ text = text.trim();
+ if (text.length() == 0) {
+ text = null;
}
+ }
- if (text != null) {
- text = text.trim();
- if (text.length() == 0) {
- text = null;
- }
+ // Compare the value before modifying the query - text pane
+ // will call "verify" even if no changes have occured....
+ if (key.equals(DEFAULT_LABEL)) {
+ if (!Util.nullSafeEquals(text, query.getSql())) {
+ query.setSql(text);
+ mediator.fireQueryEvent(new QueryEvent(this, query));
}
-
- // Compare the value before modifying the query - text pane
- // will call "verify" even if no changes have occured....
- if (key.equals(DEFAULT_LABEL)) {
- if (!Util.nullSafeEquals(text, query.getSql())) {
- query.setSql(text);
- mediator.fireQueryEvent(new QueryEvent(this, query));
- }
- } else {
- if (!Util.nullSafeEquals(text, query.getAdapterSql().get(key))) {
- query.getAdapterSql().put(key, text);
- mediator.fireQueryEvent(new QueryEvent(this, query));
- }
+ } else {
+ if (!Util.nullSafeEquals(text, query.getAdapterSql().get(key))) {
+ query.getAdapterSql().put(key, text);
+ mediator.fireQueryEvent(new QueryEvent(this, query));
}
}
- catch (BadLocationException e1) {
- e1.printStackTrace();
- }
}
final class CustomListener implements DocumentListener{
http://git-wip-us.apache.org/repos/asf/cayenne/blob/244bb456/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/components/textpane/JCayenneTextPane.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/components/textpane/JCayenneTextPane.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/components/textpane/JCayenneTextPane.java
index 9c9b44b..30ca3bc 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/components/textpane/JCayenneTextPane.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/components/textpane/JCayenneTextPane.java
@@ -331,6 +331,28 @@ public class JCayenneTextPane extends JPanel {
return pane.getDocument();
}
+ public void setDocumentTextDirect(String text) {
+ Document document = getDocument();
+ try {
+ if(!document.getText(0, document.getLength()).equals(text)) {
+ document.remove(0, document.getLength());
+ document.insertString(0, text, null);
+ }
+ } catch (BadLocationException ex) {
+ logObj.warn("Error reading document", ex);
+ }
+ }
+
+ public String getDocumentTextDirect() {
+ Document document = getDocument();
+ try {
+ return document.getText(0, document.getLength());
+ } catch (BadLocationException ex) {
+ logObj.warn("Error reading document", ex);
+ return null;
+ }
+ }
+
class JTextPaneScrollable extends JTextPane {
JTextPaneScrollable(EditorKit editorKit) {