Skip to content

Commit 3bf6a09

Browse files
committed
Refactoring
1 parent 449ab1e commit 3bf6a09

File tree

9 files changed

+134
-89
lines changed

9 files changed

+134
-89
lines changed

ui/jetbrains/src/main/java/com/neueda/jetbrains/plugin/graphdb/jetbrains/ui/datasource/tree/MetadataAction.java renamed to ui/jetbrains/src/main/java/com/neueda/jetbrains/plugin/graphdb/jetbrains/ui/datasource/metadata/actions/MetadataAction.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.neueda.jetbrains.plugin.graphdb.jetbrains.ui.datasource.tree;
1+
package com.neueda.jetbrains.plugin.graphdb.jetbrains.ui.datasource.metadata.actions;
22

33
import com.intellij.openapi.actionSystem.AnAction;
44
import com.intellij.openapi.actionSystem.AnActionEvent;
@@ -13,10 +13,11 @@
1313
import java.util.Optional;
1414

1515
public abstract class MetadataAction extends AnAction {
16+
1617
private String data;
1718
private String dataSourceUuid;
1819

19-
public MetadataAction(String data, String dataSourceUuid, String title, String description, Icon icon) {
20+
MetadataAction(String data, String dataSourceUuid, String title, String description, Icon icon) {
2021
super(title, description, icon);
2122
this.data = data;
2223
this.dataSourceUuid = dataSourceUuid;
Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,21 @@
1-
package com.neueda.jetbrains.plugin.graphdb.jetbrains.ui.datasource.tree;
1+
package com.neueda.jetbrains.plugin.graphdb.jetbrains.ui.datasource.metadata.actions;
22

33
import com.intellij.openapi.actionSystem.ActionGroup;
44
import com.intellij.openapi.actionSystem.AnAction;
55
import com.intellij.openapi.actionSystem.AnActionEvent;
6-
import com.neueda.jetbrains.plugin.graphdb.platform.GraphIcons;
76
import org.jetbrains.annotations.NotNull;
87
import org.jetbrains.annotations.Nullable;
98

10-
import static com.neueda.jetbrains.plugin.graphdb.jetbrains.component.datasource.metadata.Neo4jBoltCypherDataSourceMetadata.LABELS;
11-
import static com.neueda.jetbrains.plugin.graphdb.jetbrains.component.datasource.metadata.Neo4jBoltCypherDataSourceMetadata.PROPERTY_KEYS;
12-
import static com.neueda.jetbrains.plugin.graphdb.jetbrains.component.datasource.metadata.Neo4jBoltCypherDataSourceMetadata.RELATIONSHIP_TYPES;
9+
import static com.neueda.jetbrains.plugin.graphdb.jetbrains.component.datasource.metadata.Neo4jBoltCypherDataSourceMetadata.*;
10+
import static com.neueda.jetbrains.plugin.graphdb.platform.GraphIcons.Database.NEO4J;
1311

1412
public class MetadataActionGroup extends ActionGroup {
1513

1614
private final String type;
1715
private final String label;
1816
private final String dataSourceUuid;
1917

20-
public MetadataActionGroup(String type, String label, String dataSourceUuid){
18+
public MetadataActionGroup(String type, String label, String dataSourceUuid) {
2119
this.type = type;
2220
this.label = label;
2321
this.dataSourceUuid = dataSourceUuid;
@@ -28,11 +26,11 @@ public MetadataActionGroup(String type, String label, String dataSourceUuid){
2826
public AnAction[] getChildren(@Nullable AnActionEvent e) {
2927
switch (type) {
3028
case RELATIONSHIP_TYPES:
31-
return new AnAction[]{new MetadataRelationshipAction(label, dataSourceUuid, "Query this relationship", "", GraphIcons.Database.NEO4J)};
29+
return new AnAction[]{new MetadataRelationshipAction(label, dataSourceUuid, "Query this relationship", "", NEO4J)};
3230
case LABELS:
33-
return new AnAction[]{new MetadataLabelAction(label, dataSourceUuid, "Query this label", "", GraphIcons.Database.NEO4J)};
31+
return new AnAction[]{new MetadataLabelAction(label, dataSourceUuid, "Query this label", "", NEO4J)};
3432
case PROPERTY_KEYS:
35-
return new AnAction[]{new MetadataPropertyKeyAction(label, dataSourceUuid, "Query this property", "", GraphIcons.Database.NEO4J)};
33+
return new AnAction[]{new MetadataPropertyKeyAction(label, dataSourceUuid, "Query this property", "", NEO4J)};
3634
default:
3735
return new AnAction[]{};
3836
}
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
package com.neueda.jetbrains.plugin.graphdb.jetbrains.ui.datasource.tree;
1+
package com.neueda.jetbrains.plugin.graphdb.jetbrains.ui.datasource.metadata.actions;
22

33
import javax.swing.*;
44

55
public class MetadataLabelAction extends MetadataAction {
66

77
private static final String QUERY = "MATCH (n:%s) RETURN n LIMIT 25";
88

9-
public MetadataLabelAction(String data, String dataSourceUuid, String title, String description, Icon icon) {
9+
MetadataLabelAction(String data, String dataSourceUuid, String title, String description, Icon icon) {
1010
super(data, dataSourceUuid, title, description, icon);
1111
}
1212

1313
@Override
14-
protected String getQuery(String label) {
15-
return String.format(QUERY, label);
14+
protected String getQuery(String data) {
15+
return String.format(QUERY, data);
1616
}
1717
}
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
package com.neueda.jetbrains.plugin.graphdb.jetbrains.ui.datasource.tree;
1+
package com.neueda.jetbrains.plugin.graphdb.jetbrains.ui.datasource.metadata.actions;
22

33
import javax.swing.*;
44

55
public class MetadataPropertyKeyAction extends MetadataAction {
66

7-
private static final String QUERY = "MATCH (n) WHERE EXISTS(n.%1$s) " +
8-
"RETURN DISTINCT \"node\" as element, n.%1$s AS %1$s LIMIT 25 " +
9-
"UNION ALL MATCH ()-[r]-() WHERE EXISTS(r.%1$s) " +
10-
"RETURN DISTINCT \"relationship\" AS element, r.%1$s AS %1$s LIMIT 25";
7+
private static final String QUERY = "MATCH (n) WHERE EXISTS(n.%1$s) "
8+
+ "RETURN DISTINCT \"node\" as element, n.%1$s AS %1$s LIMIT 25 "
9+
+ "UNION ALL MATCH ()-[r]-() WHERE EXISTS(r.%1$s) "
10+
+ "RETURN DISTINCT \"relationship\" AS element, r.%1$s AS %1$s LIMIT 25";
1111

12-
public MetadataPropertyKeyAction(String data, String dataSourceUuid, String title, String description, Icon icon) {
12+
MetadataPropertyKeyAction(String data, String dataSourceUuid, String title, String description, Icon icon) {
1313
super(data, dataSourceUuid, title, description, icon);
1414
}
1515

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
package com.neueda.jetbrains.plugin.graphdb.jetbrains.ui.datasource.tree;
1+
package com.neueda.jetbrains.plugin.graphdb.jetbrains.ui.datasource.metadata.actions;
22

33
import javax.swing.*;
44

55
public class MetadataRelationshipAction extends MetadataAction {
66

77
private static final String QUERY = "MATCH p=()-[r:%s]->() RETURN p LIMIT 25";
88

9-
public MetadataRelationshipAction(String data, String dataSourceUuid, String title, String description, Icon icon) {
9+
MetadataRelationshipAction(String data, String dataSourceUuid, String title, String description, Icon icon) {
1010
super(data, dataSourceUuid, title, description, icon);
1111
}
1212

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
package com.neueda.jetbrains.plugin.graphdb.jetbrains.ui.datasource.tree.dto;
1+
package com.neueda.jetbrains.plugin.graphdb.jetbrains.ui.datasource.metadata.dto;
22

33
public class ContextMenu {
4+
45
private String metadataType;
56
private String datasourceUuid;
67
private String data;

ui/jetbrains/src/main/java/com/neueda/jetbrains/plugin/graphdb/jetbrains/ui/datasource/tree/ContextMenuService.java

Lines changed: 35 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import com.intellij.ui.treeStructure.PatchedDefaultMutableTreeNode;
44
import com.neueda.jetbrains.plugin.graphdb.jetbrains.component.datasource.state.impl.DataSourceV1;
5-
import com.neueda.jetbrains.plugin.graphdb.jetbrains.ui.datasource.tree.dto.ContextMenu;
5+
import com.neueda.jetbrains.plugin.graphdb.jetbrains.ui.datasource.metadata.dto.ContextMenu;
66
import com.neueda.jetbrains.plugin.graphdb.jetbrains.ui.datasource.tree.dto.ValueWithIcon;
77

88
import javax.swing.tree.TreeNode;
@@ -16,24 +16,25 @@ public class ContextMenuService {
1616

1717
private static final int DATASOURCE_INDEX = 1;
1818
private static final int METADATA_INDEX = 2;
19-
private static final int LABELS_OR_REL_DEPTH = 4;
19+
private static final int EXPECTED_DEPTH = 4;
2020

2121
public Optional<ContextMenu> getContextMenu(TreePath path) {
22-
if (path != null) {
23-
TreeNode lastPathComponent = (TreeNode) path.getLastPathComponent();
22+
if (path != null && path.getPathCount() == EXPECTED_DEPTH) {
2423

25-
if (path.getPathCount() == LABELS_OR_REL_DEPTH) {
26-
String metadataType = getMetadataType(path);
27-
String uuid = getDataSourceUuid(path);
28-
String data = getMetadataValue(lastPathComponent);
24+
TreeNode lastPathComponent = (TreeNode) path.getLastPathComponent();
25+
String metadataType = getMetadataType(path);
26+
String uuid = getDataSourceUuid(path);
27+
String data = getMetadataValue(lastPathComponent);
2928

30-
if (metadataType.equals(LABELS_TITLE)) {
29+
switch (metadataType) {
30+
case LABELS_TITLE:
3131
return Optional.of(new ContextMenu(LABELS, uuid, data));
32-
} else if (metadataType.equals(RELATIONSHIP_TYPES_TITLE)) {
32+
case RELATIONSHIP_TYPES_TITLE:
3333
return Optional.of(new ContextMenu(RELATIONSHIP_TYPES, uuid, data));
34-
} else if (metadataType.equals(PROPERTY_KEYS_TITLE)) {
34+
case PROPERTY_KEYS_TITLE:
3535
return Optional.of(new ContextMenu(PROPERTY_KEYS, uuid, data));
36-
}
36+
default:
37+
return Optional.empty();
3738
}
3839
}
3940
return Optional.empty();
@@ -45,24 +46,34 @@ private String getMetadataValue(TreeNode lastPathComponent) {
4546

4647
private String getMetadataType(TreePath path) {
4748
Object type = path.getPathComponent(METADATA_INDEX);
48-
49-
String metadataType = null;
50-
if (type instanceof PatchedDefaultMutableTreeNode) {
51-
Object userObject = ((PatchedDefaultMutableTreeNode) type).getUserObject();
52-
metadataType = ((ValueWithIcon) userObject).getValue();
53-
}
54-
55-
return metadataType;
49+
Object userObject = extractUserObject(type);
50+
return extractValue(userObject);
5651
}
5752

5853
private String getDataSourceUuid(TreePath path) {
5954
Object dataSourceNode = path.getPathComponent(DATASOURCE_INDEX);
60-
String dsUuid = null;
55+
Object dsUserObject = extractUserObject(dataSourceNode);
56+
return extractUuid(dsUserObject);
57+
}
58+
59+
private String extractValue(Object userObject) {
60+
if (userObject instanceof ValueWithIcon) {
61+
return ((ValueWithIcon) userObject).getValue();
62+
}
63+
return null;
64+
}
65+
66+
private Object extractUserObject(Object dataSourceNode) {
6167
if (dataSourceNode instanceof PatchedDefaultMutableTreeNode) {
62-
Object dsUserObject = ((PatchedDefaultMutableTreeNode) dataSourceNode).getUserObject();
63-
dsUuid = ((DataSourceV1) dsUserObject).getUUID();
68+
return ((PatchedDefaultMutableTreeNode) dataSourceNode).getUserObject();
6469
}
70+
return null;
71+
}
6572

66-
return dsUuid;
73+
private String extractUuid(Object dsUserObject) {
74+
if (dsUserObject instanceof DataSourceV1) {
75+
return ((DataSourceV1) dsUserObject).getUUID();
76+
}
77+
return null;
6778
}
6879
}

ui/jetbrains/src/main/java/com/neueda/jetbrains/plugin/graphdb/jetbrains/ui/datasource/tree/DataSourcesTreeMouseAdapter.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
import com.intellij.openapi.ui.popup.JBPopupFactory;
66
import com.intellij.openapi.ui.popup.ListPopup;
77
import com.intellij.ui.treeStructure.Tree;
8-
import com.neueda.jetbrains.plugin.graphdb.jetbrains.ui.datasource.tree.dto.ContextMenu;
9-
import com.sun.org.apache.regexp.internal.RE;
8+
import com.neueda.jetbrains.plugin.graphdb.jetbrains.ui.datasource.metadata.actions.MetadataActionGroup;
9+
import com.neueda.jetbrains.plugin.graphdb.jetbrains.ui.datasource.metadata.dto.ContextMenu;
1010

1111
import javax.swing.tree.TreePath;
1212
import java.awt.event.MouseAdapter;
@@ -51,4 +51,4 @@ private void contextMenu(String type, String data, String uuid, DataContext data
5151

5252
popup.showInBestPositionFor(dataContext);
5353
}
54-
}
54+
}

0 commit comments

Comments
 (0)