From 572b8e32012aef5fff2774f229ff62f038743e3e Mon Sep 17 00:00:00 2001 From: argius Date: Thu, 2 May 2013 23:44:34 +0900 Subject: [PATCH] changed collectTableName(arg1, arg2) to collectColumnNode(arg1) and collectTableName(arg1) --- .../argius/stew/ui/window/DatabaseInfoTree.java | 80 ++++++++++++---------- 1 file changed, 42 insertions(+), 38 deletions(-) diff --git a/src/net/argius/stew/ui/window/DatabaseInfoTree.java b/src/net/argius/stew/ui/window/DatabaseInfoTree.java index 921e4aa..5d2c3ad 100644 --- a/src/net/argius/stew/ui/window/DatabaseInfoTree.java +++ b/src/net/argius/stew/ui/window/DatabaseInfoTree.java @@ -76,26 +76,6 @@ final class DatabaseInfoTree extends JTree implements AnyActionListener, TextSea } } - static Set collectTableName(TreePath[] paths, List out) { - Set a = new LinkedHashSet(); - for (TreePath path : paths) { - InfoNode node = (InfoNode)path.getLastPathComponent(); - if (node instanceof TableNode) { - TableNode tableNode = (TableNode)node; - if (tableNode.isKindOfTable()) { - a.add(tableNode.getNodeFullName()); - } - } else if (node instanceof ColumnNode) { - ColumnNode columnNode = (ColumnNode)node; - if (columnNode.getTableNode().isKindOfTable()) { - a.add(columnNode.getTableNode().getName()); - out.add(columnNode); - } - } - } - return a; - } - @Override public void anyActionPerformed(AnyActionEvent ev) { log.atEnter("anyActionPerformed", ev); @@ -109,38 +89,38 @@ final class DatabaseInfoTree extends JTree implements AnyActionListener, TextSea } } else if (ev.isAnyOf(generateWherePhrase)) { TreePath[] paths = getSelectionPaths(); - List columns = new ArrayList(); - Set tableNames = collectTableName(paths, columns); - if (!tableNames.isEmpty()) { + List columns = collectColumnNode(paths); + String[] tableNames = collectTableName(columns); + if (tableNames.length != 0) { insertTextToTextArea(generateEquivalentJoinClause(columns)); } } else if (ev.isAnyOf(generateSelectPhrase)) { TreePath[] paths = getSelectionPaths(); - List columns = new ArrayList(); - Set tableNames = collectTableName(paths, columns); - if (!tableNames.isEmpty()) { + List columns = collectColumnNode(paths); + String[] tableNames = collectTableName(columns); + if (tableNames.length != 0) { List columnNames = new ArrayList(); - final boolean one = tableNames.size() == 1; + final boolean one = tableNames.length == 1; for (ColumnNode node : columns) { columnNames.add(one ? node.getName() : node.getNodeFullName()); } final String columnString = (columnNames.isEmpty()) ? "*" : TextUtilities.join(", ", columnNames); - final String tableString = joinByComma(new ArrayList(tableNames)); + final String tableString = joinByComma(Arrays.asList(tableNames)); insertTextToTextArea(String.format("SELECT %s FROM %s WHERE ", columnString, tableString)); } } else if (ev.isAnyOf(generateUpdateStatement)) { TreePath[] paths = getSelectionPaths(); - List columns = new ArrayList(); - Set tableNames = collectTableName(paths, columns); - if (tableNames.isEmpty()) { + List columns = collectColumnNode(paths); + String[] tableNames = collectTableName(columns); + if (tableNames.length == 0) { return; } - if (tableNames.size() != 1 || columns.isEmpty()) { + if (tableNames.length != 1 || columns.isEmpty()) { showInformationMessageDialog(this, res.get("e.enables-select-just-1-table"), ""); } else { - final String tableName = tableNames.toArray(new String[1])[0]; + final String tableName = tableNames[0]; List columnExpressions = new ArrayList(); for (ColumnNode columnNode : columns) { columnExpressions.add(columnNode.getName() + "=?"); @@ -220,18 +200,42 @@ final class DatabaseInfoTree extends JTree implements AnyActionListener, TextSea ClipboardHelper.setStrings(names); } + private static List collectColumnNode(TreePath[] paths) { + List a = new ArrayList(); + if (paths != null) { + for (TreePath path : paths) { + InfoNode node = (InfoNode)path.getLastPathComponent(); + if (node instanceof ColumnNode) { + ColumnNode columnNode = (ColumnNode)node; + if (columnNode.getTableNode().isKindOfTable()) { + a.add(columnNode); + } + } + } + } + return a; + } + + private static String[] collectTableName(List columnNodes) { + Set tableNames = new LinkedHashSet(); + for (final ColumnNode node : columnNodes) { + tableNames.add(node.getTableNode().getNodeFullName()); + } + return tableNames.toArray(new String[tableNames.size()]); + } + private void generateInsertStatement() { TreePath[] paths = getSelectionPaths(); - List columns = new ArrayList(); - Set tableNames = collectTableName(paths, columns); - if (tableNames.isEmpty()) { + List columns = collectColumnNode(paths); + String[] tableNames = collectTableName(columns); + if (tableNames.length == 0) { return; } - if (tableNames.size() != 1) { + if (tableNames.length != 1) { showInformationMessageDialog(this, res.get("e.enables-select-just-1-table"), ""); return; } - final String tableName = tableNames.toArray(new String[1])[0]; + final String tableName = tableNames[0]; List columnNames = new ArrayList(); final Iterable columnNodes; if (columns.isEmpty()) { -- 2.11.0