Repository: cayenne Updated Branches: refs/heads/master 9ac7a2292 -> 781dcce21
CAY-2497 Modeler: SQL Scripts tab isn't scrollable Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/c339c308 Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/c339c308 Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/c339c308 Branch: refs/heads/master Commit: c339c308f327243a9294f00ee054ab0b8df2a10d Parents: b580bda Author: Arseni Bulatski <ancars...@gmail.com> Authored: Mon Nov 19 12:15:51 2018 +0300 Committer: Arseni Bulatski <ancars...@gmail.com> Committed: Mon Nov 19 12:19:51 2018 +0300 ---------------------------------------------------------------------- RELEASE-NOTES.txt | 1 + .../modeler/editor/SQLTemplateScriptsTab.java | 51 +++++++++----------- .../components/textpane/JCayenneTextPane.java | 29 ++++++----- 3 files changed, 37 insertions(+), 44 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cayenne/blob/c339c308/RELEASE-NOTES.txt ---------------------------------------------------------------------- diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index d701e29..6943bd2 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -26,6 +26,7 @@ CAY-2487 Removed usage of CayenneException. CAY-2489 Add validation to the case of not to PK relationships CAY-2491 Remaster Db Import View CAY-2493 Save cgen configuration with datamap XML +CAY-2497 Modeler: SQL Scripts tab isn't scrollable Bug Fixes: http://git-wip-us.apache.org/repos/asf/cayenne/blob/c339c308/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 90f8451..1427c28 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 @@ -23,10 +23,10 @@ import com.jgoodies.forms.builder.PanelBuilder; import com.jgoodies.forms.layout.CellConstraints; import com.jgoodies.forms.layout.FormLayout; import org.apache.cayenne.configuration.event.QueryEvent; -import org.apache.cayenne.modeler.ProjectController; -import org.apache.cayenne.modeler.util.DbAdapterInfo; import org.apache.cayenne.map.QueryDescriptor; import org.apache.cayenne.map.SQLTemplateDescriptor; +import org.apache.cayenne.modeler.ProjectController; +import org.apache.cayenne.modeler.util.DbAdapterInfo; import org.apache.cayenne.modeler.util.JUndoableCayenneTextPane; import org.apache.cayenne.swing.components.textpane.JCayenneTextPane; import org.apache.cayenne.swing.components.textpane.syntax.SQLSyntaxConstants; @@ -49,11 +49,9 @@ import javax.swing.text.Document; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; +import java.util.*; import java.util.List; -import java.util.Map; + /** * A panel for configuring SQL scripts of a SQL template. @@ -80,6 +78,16 @@ public class SQLTemplateScriptsTab extends JPanel { initView(); } + private void prepareScriptAreas() { + for(String key : DbAdapterInfo.getStandardAdapters()) { + JCayenneTextPane currPane = new JUndoableCayenneTextPane(new SQLSyntaxConstants()); + currPane.setName(key); + currPane.getDocument().addDocumentListener(new CustomListener(currPane.getName())); + builder.add(currPane.getScrollPane(), cc.xy(3, 2)); + panes.add(currPane); + } + } + protected void initView() { // create widgets, etc. @@ -114,17 +122,19 @@ public class SQLTemplateScriptsTab extends JPanel { builder = new PanelBuilder(new FormLayout( "fill:100dlu, 3dlu, fill:100dlu:grow", - "3dlu, fill:p:grow")); + "3dlu, fill:100dlu:grow")); // orderings table must grow as the panel is resized builder.add(new JScrollPane( scripts, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER), cc.xy(1, 2)); - builder.add(textPane.getPane(), cc.xy(3, 2)); + builder.add(textPane.getScrollPane(), cc.xy(3, 2)); setLayout(new BorderLayout()); add(builder.getPanel(), BorderLayout.CENTER); + + prepareScriptAreas(); } void initFromModel() { @@ -182,33 +192,16 @@ public class SQLTemplateScriptsTab extends JPanel { return; } - boolean exist = false; - for (JCayenneTextPane textPane: panes) { - if (textPane.getName().equals(key)) { - exist = true; - break; - } - } - - if (!exist) { - JCayenneTextPane textPane = new JUndoableCayenneTextPane(new SQLSyntaxConstants()); - textPane.setName(key); - textPane.getDocument().addDocumentListener(new CustomListener(textPane.getName())); - builder.add(textPane.getPane(), cc.xy(3, 2)); - panes.add(textPane); - } - final String text = (key.equals(DEFAULT_LABEL)) ? query.getSql() : query .getAdapterSql().get(key); - for (final JCayenneTextPane textPane: panes) { + for (final JCayenneTextPane textPane : panes) { if (key.equals(textPane.getName())) { textPane.setDocumentTextDirect(text); - textPane.getPane().setVisible(true); - textPane.getPane().setEditable(true); + textPane.getScrollPane().setVisible(true); + textPane.getPane().requestFocusInWindow(); } else { - textPane.getPane().setVisible(false); - textPane.getPane().setEditable(false); + textPane.getScrollPane().setVisible(false); } } } http://git-wip-us.apache.org/repos/asf/cayenne/blob/c339c308/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 30ca3bc..0f99977 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 @@ -18,14 +18,12 @@ ****************************************************************/ package org.apache.cayenne.swing.components.textpane; -import java.awt.Color; -import java.awt.Cursor; -import java.awt.Dimension; -import java.awt.Graphics; -import java.awt.Image; -import java.awt.Point; -import java.awt.Rectangle; -import java.awt.event.MouseEvent; +import org.apache.cayenne.modeler.Main; +import org.apache.cayenne.modeler.util.ModelerUtil; +import org.apache.cayenne.swing.components.textpane.syntax.SQLSyntaxConstants; +import org.apache.cayenne.swing.components.textpane.syntax.SyntaxConstant; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import javax.swing.BorderFactory; import javax.swing.JPanel; @@ -38,13 +36,14 @@ import javax.swing.text.BadLocationException; import javax.swing.text.Document; import javax.swing.text.Highlighter; import javax.swing.text.JTextComponent; - -import org.apache.cayenne.modeler.Main; -import org.apache.cayenne.modeler.util.ModelerUtil; -import org.apache.cayenne.swing.components.textpane.syntax.SQLSyntaxConstants; -import org.apache.cayenne.swing.components.textpane.syntax.SyntaxConstant; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import java.awt.Color; +import java.awt.Cursor; +import java.awt.Dimension; +import java.awt.Graphics; +import java.awt.Image; +import java.awt.Point; +import java.awt.Rectangle; +import java.awt.event.MouseEvent; public class JCayenneTextPane extends JPanel {