Skip to content

Commit 96bfcb7

Browse files
committed
Tested and working
1 parent 4b54c28 commit 96bfcb7

File tree

6 files changed

+41
-15
lines changed

6 files changed

+41
-15
lines changed

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

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

33
import com.intellij.ui.treeStructure.PatchedDefaultMutableTreeNode;
4-
import com.neueda.jetbrains.plugin.graphdb.jetbrains.component.datasource.metadata.Neo4jBoltCypherDataSourceMetadata;
54
import com.neueda.jetbrains.plugin.graphdb.jetbrains.component.datasource.state.impl.DataSourceV1;
65
import com.neueda.jetbrains.plugin.graphdb.jetbrains.ui.datasource.tree.dto.ContextMenu;
76
import com.neueda.jetbrains.plugin.graphdb.jetbrains.ui.datasource.tree.dto.ValueWithIcon;
@@ -10,8 +9,8 @@
109
import javax.swing.tree.TreePath;
1110
import java.util.Optional;
1211

13-
import static com.neueda.jetbrains.plugin.graphdb.jetbrains.component.datasource.metadata.Neo4jBoltCypherDataSourceMetadata.LABELS;
14-
import static com.neueda.jetbrains.plugin.graphdb.jetbrains.component.datasource.metadata.Neo4jBoltCypherDataSourceMetadata.RELATIONSHIP_TYPES;
12+
import static com.neueda.jetbrains.plugin.graphdb.jetbrains.component.datasource.metadata.Neo4jBoltCypherDataSourceMetadata.*;
13+
import static com.neueda.jetbrains.plugin.graphdb.jetbrains.ui.datasource.metadata.DataSourceMetadataUi.*;
1514

1615
public class ContextMenuService {
1716

@@ -28,10 +27,12 @@ public Optional<ContextMenu> getContextMenu(TreePath path) {
2827
String uuid = getDataSourceUuid(path);
2928
String data = getMetadataValue(lastPathComponent);
3029

31-
if (metadataType.equals("labels")) {
30+
if (metadataType.equals(LABELS_TITLE)) {
3231
return Optional.of(new ContextMenu(LABELS, uuid, data));
33-
} else if (metadataType.equals("relationship types")) {
32+
} else if (metadataType.equals(RELATIONSHIP_TYPES_TITLE)) {
3433
return Optional.of(new ContextMenu(RELATIONSHIP_TYPES, uuid, data));
34+
} else if (metadataType.equals(PROPERTY_KEYS_TITLE)) {
35+
return Optional.of(new ContextMenu(PROPERTY_KEYS, uuid, data));
3536
}
3637
}
3738
}

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import java.awt.event.MouseEvent;
1414

1515
import static com.neueda.jetbrains.plugin.graphdb.jetbrains.component.datasource.metadata.Neo4jBoltCypherDataSourceMetadata.LABELS;
16+
import static com.neueda.jetbrains.plugin.graphdb.jetbrains.component.datasource.metadata.Neo4jBoltCypherDataSourceMetadata.PROPERTY_KEYS;
1617
import static com.neueda.jetbrains.plugin.graphdb.jetbrains.component.datasource.metadata.Neo4jBoltCypherDataSourceMetadata.RELATIONSHIP_TYPES;
1718

1819
public class DataSourcesTreeMouseAdapter extends MouseAdapter {
@@ -31,7 +32,9 @@ public void mouseClicked(MouseEvent e) {
3132
}
3233

3334
private void popup(ContextMenu dto, Tree tree) {
34-
if (dto.getMetadataType().equals(LABELS) || dto.getMetadataType().equals(RELATIONSHIP_TYPES)) {
35+
if (dto.getMetadataType().equals(LABELS)
36+
|| dto.getMetadataType().equals(RELATIONSHIP_TYPES)
37+
|| dto.getMetadataType().equals(PROPERTY_KEYS)) {
3538
DataContext dataContext = DataManager.getInstance().getDataContext(tree);
3639
contextMenu(dto.getMetadataType(), dto.getData(), dto.getDatasourceUuid(), dataContext);
3740
}

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import org.jetbrains.annotations.Nullable;
99

1010
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;
1112
import static com.neueda.jetbrains.plugin.graphdb.jetbrains.component.datasource.metadata.Neo4jBoltCypherDataSourceMetadata.RELATIONSHIP_TYPES;
1213

1314
public class MetadataActionGroup extends ActionGroup {
@@ -27,9 +28,11 @@ public MetadataActionGroup(String type, String label, String dataSourceUuid){
2728
public AnAction[] getChildren(@Nullable AnActionEvent e) {
2829
switch (type) {
2930
case RELATIONSHIP_TYPES:
30-
return new AnAction[]{new MetadataLabelAction(label, dataSourceUuid, "Query this relationship", "", GraphIcons.Database.NEO4J)};
31+
return new AnAction[]{new MetadataRelationshipAction(label, dataSourceUuid, "Query this relationship", "", GraphIcons.Database.NEO4J)};
3132
case LABELS:
3233
return new AnAction[]{new MetadataLabelAction(label, dataSourceUuid, "Query this label", "", GraphIcons.Database.NEO4J)};
34+
case PROPERTY_KEYS:
35+
return new AnAction[]{new MetadataPropertyKeyAction(label, dataSourceUuid, "Query this property", "", GraphIcons.Database.NEO4J)};
3336
default:
3437
return new AnAction[]{};
3538
}

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,14 @@
44

55
public class MetadataLabelAction extends MetadataAction {
66

7-
private static final String LABEL_QUERY_START = "MATCH (n:";
8-
private static final String LABEL_QUERY_END = ") RETURN n LIMIT 25";
7+
private static final String QUERY = "MATCH (n:%s) RETURN n LIMIT 25";
98

109
public MetadataLabelAction(String data, String dataSourceUuid, String title, String description, Icon icon) {
1110
super(data, dataSourceUuid, title, description, icon);
1211
}
1312

1413
@Override
15-
protected String getQuery(String data) {
16-
return LABEL_QUERY_START + data + LABEL_QUERY_END;
14+
protected String getQuery(String label) {
15+
return String.format(QUERY, label);
1716
}
1817
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.neueda.jetbrains.plugin.graphdb.jetbrains.ui.datasource.tree;
2+
3+
import javax.swing.*;
4+
5+
public class MetadataPropertyKeyAction extends MetadataAction {
6+
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";
11+
12+
public MetadataPropertyKeyAction(String data, String dataSourceUuid, String title, String description, Icon icon) {
13+
super(data, dataSourceUuid, title, description, icon);
14+
}
15+
16+
@Override
17+
protected String getQuery(String data) {
18+
return String.format(QUERY, data);
19+
}
20+
}

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@
33
import javax.swing.*;
44

55
public class MetadataRelationshipAction extends MetadataAction {
6-
private static final String REL_QUERY_START = "MATCH p=()-[r:";
7-
private static final String REL_QUERY_END = "]->() RETURN p LIMIT 25";
6+
7+
private static final String QUERY = "MATCH p=()-[r:%s]->() RETURN p LIMIT 25";
88

99
public MetadataRelationshipAction(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 data) {
15-
return REL_QUERY_START + data + REL_QUERY_END;
14+
protected String getQuery(String relationship) {
15+
return String.format(QUERY, relationship);
1616
}
1717
}

0 commit comments

Comments
 (0)