Skip to content

Commit 6aa7433

Browse files
committed
refactor(graphviz): simplify diagram editor and naming #438
Update provider names, remove redundant methods, and streamline editor property change handling for improved clarity and maintainability.
1 parent e89a39e commit 6aa7433

4 files changed

Lines changed: 12 additions & 61 deletions

File tree

exts/ext-diagram/src/main/kotlin/cc/unitmesh/diagram/graphviz/GraphvizElementManager.kt

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,15 @@
11
package cc.unitmesh.diagram.graphviz
22

3+
import cc.unitmesh.diagram.graphviz.model.*
34
import com.intellij.diagram.AbstractDiagramElementManager
45
import com.intellij.diagram.DiagramBuilder
56
import com.intellij.openapi.actionSystem.CommonDataKeys
67
import com.intellij.openapi.actionSystem.DataContext
78
import com.intellij.openapi.project.Project
89
import com.intellij.openapi.vfs.VirtualFile
910
import com.intellij.openapi.vfs.pointers.VirtualFilePointerManager
10-
import com.intellij.psi.PsiManager
1111
import com.intellij.ui.SimpleColoredText
1212
import com.intellij.ui.SimpleTextAttributes
13-
import cc.unitmesh.diagram.graphviz.model.GraphvizNodeData
14-
import cc.unitmesh.diagram.graphviz.model.GraphvizDiagramRootData
15-
import cc.unitmesh.diagram.graphviz.model.GraphvizSimpleNodeData
16-
import cc.unitmesh.diagram.graphviz.model.GraphvizEntityNodeData
17-
import cc.unitmesh.diagram.graphviz.model.GraphvizNodeField
18-
import cc.unitmesh.diagram.graphviz.model.GraphvizAttributeItem
1913
import com.intellij.util.ArrayUtil
2014
import javax.swing.Icon
2115

@@ -42,7 +36,6 @@ class GraphvizElementManager : AbstractDiagramElementManager<GraphvizNodeData>()
4236
return when (nodeElement) {
4337
is GraphvizEntityNodeData -> nodeElement.getFields().toTypedArray()
4438
is GraphvizSimpleNodeData -> {
45-
// Convert attributes to GraphvizAttributeItem objects
4639
nodeElement.getAttributes().map { (key, value) ->
4740
GraphvizAttributeItem(key, value)
4841
}.toTypedArray()
@@ -87,7 +80,11 @@ class GraphvizElementManager : AbstractDiagramElementManager<GraphvizNodeData>()
8780
else -> element.getName()
8881
}
8982
}
90-
83+
84+
override fun canBeBuiltFrom(element: Any?): Boolean {
85+
return element is GraphvizDiagramRootData || super.canBeBuiltFrom(element)
86+
}
87+
9188
override fun getItemName(
9289
nodeElement: GraphvizNodeData?,
9390
nodeItem: Any?,

exts/ext-diagram/src/main/kotlin/cc/unitmesh/diagram/graphviz/GraphvizUmlProvider.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,11 @@ class GraphvizUmlProvider : DiagramProvider<GraphvizNodeData>() {
2121

2222
@Pattern("[a-zA-Z0-9_-]*")
2323
override fun getID(): String {
24-
25-
return "GraphvizDOT"
24+
return "AutoDev GraphvizDOT"
2625
}
2726

2827
override fun getPresentableName(): String {
29-
return "Graphviz DOT Diagram"
28+
return "AutoDev Graphviz DOT Diagram"
3029
}
3130

3231
override fun createDataModel(

exts/ext-diagram/src/main/kotlin/cc/unitmesh/diagram/graphviz/editor/GraphvizPreviewFileEditor.kt

Lines changed: 3 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -104,13 +104,9 @@ class GraphvizPreviewFileEditor(private val project: Project, private val file:
104104

105105
override fun isValid(): Boolean = !isDisposed
106106

107-
override fun addPropertyChangeListener(listener: PropertyChangeListener) {
108-
// No properties to listen to
109-
}
107+
override fun addPropertyChangeListener(listener: PropertyChangeListener) {}
110108

111-
override fun removePropertyChangeListener(listener: PropertyChangeListener) {
112-
// No properties to listen to
113-
}
109+
override fun removePropertyChangeListener(listener: PropertyChangeListener) {}
114110

115111
override fun getCurrentLocation(): FileEditorLocation? = null
116112

@@ -136,7 +132,7 @@ class GraphvizPreviewFileEditor(private val project: Project, private val file:
136132
if (isDisposed) return@addRequest
137133

138134
try {
139-
renderUml()
135+
myPanel!!.draw()
140136
} catch (e: Exception) {
141137
// Handle rendering errors gracefully
142138
e.printStackTrace()
@@ -145,23 +141,4 @@ class GraphvizPreviewFileEditor(private val project: Project, private val file:
145141
}
146142
})
147143
}
148-
149-
private fun renderUml() {
150-
if (isDisposed) return
151-
152-
// Dispose old panel
153-
myPanel?.let { Disposer.dispose(it) }
154-
155-
// Create new panel
156-
myPanel = GraphvizDiagramPanel(this)
157-
158-
umlPanelWrapper.removeAll()
159-
umlPanelWrapper.add(myPanel!!.getComponent())
160-
161-
// Draw the diagram
162-
myPanel!!.draw()
163-
164-
umlPanelWrapper.revalidate()
165-
umlPanelWrapper.repaint()
166-
}
167144
}

exts/ext-diagram/src/main/kotlin/cc/unitmesh/diagram/graphviz/model/GraphvizDiagramRootData.kt

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -18,28 +18,6 @@ class GraphvizDiagramRootData(
1818
override fun getName(): String = name
1919

2020
override fun getIcon(): Icon = PlatformIcons.FILE_ICON
21-
22-
/**
23-
* Get the virtual file associated with this root data
24-
*/
21+
2522
fun getVirtualFile(): VirtualFile? = virtualFilePointer.file
26-
27-
/**
28-
* Get the file pointer
29-
*/
30-
fun getFilePointer(): VirtualFilePointer = virtualFilePointer
31-
32-
override fun equals(other: Any?): Boolean {
33-
if (this === other) return true
34-
if (other !is GraphvizDiagramRootData) return false
35-
return virtualFilePointer == other.virtualFilePointer
36-
}
37-
38-
override fun hashCode(): Int {
39-
return virtualFilePointer.hashCode()
40-
}
41-
42-
override fun toString(): String {
43-
return "GraphvizDiagramRootData(name='$name')"
44-
}
4523
}

0 commit comments

Comments
 (0)