1
1
package com .neueda .jetbrains .plugin .graphdb .jetbrains .ui .datasource .metadata ;
2
2
3
3
import com .intellij .ui .treeStructure .PatchedDefaultMutableTreeNode ;
4
- import com .neueda .jetbrains .plugin .graphdb .jetbrains .component .datasource .metadata .*;
4
+ import com .neueda .jetbrains .plugin .graphdb .jetbrains .component .datasource .metadata .DataSourceMetadata ;
5
+ import com .neueda .jetbrains .plugin .graphdb .jetbrains .component .datasource .metadata .DataSourcesComponentMetadata ;
6
+ import com .neueda .jetbrains .plugin .graphdb .jetbrains .component .datasource .metadata .Neo4jBoltCypherDataSourceMetadata ;
5
7
import com .neueda .jetbrains .plugin .graphdb .jetbrains .component .datasource .state .DataSourceApi ;
6
- import com .neueda .jetbrains .plugin .graphdb .jetbrains .ui .datasource .tree .dto .ValueWithIcon ;
8
+ import com .neueda .jetbrains .plugin .graphdb .jetbrains .ui .datasource .tree .MetadataTreeNodeModel ;
9
+ import com .neueda .jetbrains .plugin .graphdb .jetbrains .ui .datasource .tree .TreeNodeModelApi ;
7
10
import com .neueda .jetbrains .plugin .graphdb .platform .GraphIcons ;
8
11
12
+ import static com .neueda .jetbrains .plugin .graphdb .jetbrains .ui .datasource .tree .Neo4jTreeNodeType .*;
13
+
9
14
public class DataSourceMetadataUi {
10
15
16
+ private static final String RELATIONSHIP_TYPES_TITLE = "relationship types" ;
17
+ private static final String PROPERTY_KEYS_TITLE = "property keys" ;
18
+ private static final String LABELS_TITLE = "labels" ;
19
+ private static final String STORED_PROCEDURES_TITLE = "stored procedures" ;
20
+ private static final String USER_FUNCTIONS_TITLE = "user functions" ;
21
+
11
22
private final DataSourcesComponentMetadata dataSourcesComponent ;
12
23
13
24
public DataSourceMetadataUi (DataSourcesComponentMetadata dataSourcesComponent ) {
@@ -26,43 +37,45 @@ public boolean updateDataSourceMetadataUi(PatchedDefaultMutableTreeNode node, Da
26
37
}
27
38
28
39
// ui
29
- private boolean updateNeo4jBoltCypherMetadataUi (PatchedDefaultMutableTreeNode dataSourceRootTreeNode ,
40
+ boolean updateNeo4jBoltCypherMetadataUi (PatchedDefaultMutableTreeNode dataSourceRootTreeNode ,
30
41
DataSourceMetadata dataSourceMetadata ) {
31
42
// Remove existing metadata from ui
32
43
dataSourceRootTreeNode .removeAllChildren ();
44
+ TreeNodeModelApi model = (TreeNodeModelApi ) dataSourceRootTreeNode .getUserObject ();
45
+ DataSourceApi dataSourceApi = model .getDataSourceApi ();
33
46
34
47
// Labels
35
48
PatchedDefaultMutableTreeNode labelsTreeNode = new PatchedDefaultMutableTreeNode (
36
- new ValueWithIcon ( GraphIcons .Nodes .LABEL , "labels" ));
49
+ new MetadataTreeNodeModel ( LABELS , dataSourceApi , LABELS_TITLE , GraphIcons .Nodes .LABEL ));
37
50
dataSourceMetadata
38
51
.getMetadata (Neo4jBoltCypherDataSourceMetadata .LABELS )
39
- .forEach ((row ) -> labelsTreeNode .add (new PatchedDefaultMutableTreeNode ( row .get ("label" ))));
52
+ .forEach ((row ) -> labelsTreeNode .add (of ( new MetadataTreeNodeModel ( LABEL , dataSourceApi , row .get ("label" ) ))));
40
53
dataSourceRootTreeNode .add (labelsTreeNode );
41
54
42
55
// RelTypes
43
56
PatchedDefaultMutableTreeNode relationshipTypesTreeNode = new PatchedDefaultMutableTreeNode (
44
- new ValueWithIcon ( GraphIcons .Nodes .RELATIONSHIP_TYPE , "relationship types" ));
57
+ new MetadataTreeNodeModel ( RELATIONSHIPS , dataSourceApi , RELATIONSHIP_TYPES_TITLE , GraphIcons .Nodes .RELATIONSHIP_TYPE ));
45
58
dataSourceMetadata
46
59
.getMetadata (Neo4jBoltCypherDataSourceMetadata .RELATIONSHIP_TYPES )
47
- .forEach ((row ) -> relationshipTypesTreeNode .add (new PatchedDefaultMutableTreeNode ( row .get ("relationshipType" ))));
60
+ .forEach ((row ) -> relationshipTypesTreeNode .add (of ( new MetadataTreeNodeModel ( RELATIONSHIP , dataSourceApi , row .get ("relationshipType" ) ))));
48
61
dataSourceRootTreeNode .add (relationshipTypesTreeNode );
49
62
50
63
// Property Keys
51
64
PatchedDefaultMutableTreeNode propertyKeysTreeNode = new PatchedDefaultMutableTreeNode (
52
- new ValueWithIcon ( GraphIcons .Nodes .PROPERTY_KEY , "property keys" ));
65
+ new MetadataTreeNodeModel ( PROPERTY_KEYS , dataSourceApi , PROPERTY_KEYS_TITLE , GraphIcons .Nodes .PROPERTY_KEY ));
53
66
dataSourceMetadata
54
67
.getMetadata (Neo4jBoltCypherDataSourceMetadata .PROPERTY_KEYS )
55
- .forEach ((row ) -> propertyKeysTreeNode .add (new PatchedDefaultMutableTreeNode ( row .get ("propertyKey" ))));
68
+ .forEach ((row ) -> propertyKeysTreeNode .add (of ( new MetadataTreeNodeModel ( PROPERTY_KEY , dataSourceApi , row .get ("propertyKey" ) ))));
56
69
dataSourceRootTreeNode .add (propertyKeysTreeNode );
57
70
58
71
// Stored procedures
59
72
PatchedDefaultMutableTreeNode storedProceduresTreeNode = new PatchedDefaultMutableTreeNode (
60
- new ValueWithIcon ( GraphIcons .Nodes .STORED_PROCEDURE , "stored procedures" ));
73
+ new MetadataTreeNodeModel ( STORED_PROCEDURES , dataSourceApi , STORED_PROCEDURES_TITLE , GraphIcons .Nodes .STORED_PROCEDURE ));
61
74
dataSourceMetadata
62
75
.getMetadata (Neo4jBoltCypherDataSourceMetadata .STORED_PROCEDURES )
63
76
.forEach ((row ) -> {
64
- PatchedDefaultMutableTreeNode nameNode = new PatchedDefaultMutableTreeNode ( row .get ("name" ));
65
- PatchedDefaultMutableTreeNode descriptionNode = new PatchedDefaultMutableTreeNode ( row .get ("signature" ));
77
+ PatchedDefaultMutableTreeNode nameNode = of ( new MetadataTreeNodeModel ( STORED_PROCEDURE , dataSourceApi , row .get ("name" ) ));
78
+ PatchedDefaultMutableTreeNode descriptionNode = of ( new MetadataTreeNodeModel ( STORED_PROCEDURE , dataSourceApi , row .get ("signature" ) ));
66
79
nameNode .add (descriptionNode );
67
80
storedProceduresTreeNode .add (nameNode );
68
81
});
@@ -71,13 +84,13 @@ private boolean updateNeo4jBoltCypherMetadataUi(PatchedDefaultMutableTreeNode da
71
84
// User Functions
72
85
if (dataSourceMetadata .isMetadataExists (Neo4jBoltCypherDataSourceMetadata .USER_FUNCTIONS )) {
73
86
PatchedDefaultMutableTreeNode userFunctionTreeNode = new PatchedDefaultMutableTreeNode (
74
- new ValueWithIcon ( GraphIcons .Nodes .USER_FUNCTION , "user functions" ));
87
+ new MetadataTreeNodeModel ( USER_FUNCTIONS , dataSourceApi , USER_FUNCTIONS_TITLE , GraphIcons .Nodes .USER_FUNCTION ));
75
88
76
89
dataSourceMetadata
77
90
.getMetadata (Neo4jBoltCypherDataSourceMetadata .USER_FUNCTIONS )
78
91
.forEach ((row ) -> {
79
- PatchedDefaultMutableTreeNode nameNode = new PatchedDefaultMutableTreeNode ( row .get ("name" ));
80
- PatchedDefaultMutableTreeNode descriptionNode = new PatchedDefaultMutableTreeNode ( row .get ("signature" ));
92
+ PatchedDefaultMutableTreeNode nameNode = of ( new MetadataTreeNodeModel ( USER_FUNCTION , dataSourceApi , row .get ("name" ) ));
93
+ PatchedDefaultMutableTreeNode descriptionNode = of ( new MetadataTreeNodeModel ( USER_FUNCTION , dataSourceApi , row .get ("signature" ) ));
81
94
nameNode .add (descriptionNode );
82
95
userFunctionTreeNode .add (nameNode );
83
96
});
@@ -87,4 +100,8 @@ private boolean updateNeo4jBoltCypherMetadataUi(PatchedDefaultMutableTreeNode da
87
100
88
101
return true ;
89
102
}
103
+
104
+ private PatchedDefaultMutableTreeNode of (MetadataTreeNodeModel model ) {
105
+ return new PatchedDefaultMutableTreeNode (model );
106
+ }
90
107
}
0 commit comments