Skip to content

Commit ce08ea2

Browse files
authored
Merge pull request #213 from wuseal/master
update merge into 3.4.0
2 parents 1d41213 + ddde13b commit ce08ea2

File tree

10 files changed

+211
-167
lines changed

10 files changed

+211
-167
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ apply plugin: 'kotlin'
2020
apply plugin: 'org.jetbrains.intellij'
2121

2222
group 'wu.seal'
23-
version '3.4.0-EAP'
23+
version '3.4.0-EAP-2'
2424

2525
intellij {
2626
version '2017.1'

src/main/kotlin/extensions/chen/biao/KeepAnnotationSupport.kt

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package extensions.chen.biao
22

3-
import com.intellij.ui.layout.panel
43
import extensions.Extension
54
import wu.seal.jsontokotlin.classscodestruct.Annotation
65
import wu.seal.jsontokotlin.classscodestruct.KotlinDataClass
6+
import wu.seal.jsontokotlin.ui.horizontalLinearLayout
77
import javax.swing.JCheckBox
88
import javax.swing.JPanel
99

@@ -19,17 +19,15 @@ object KeepAnnotationSupport : Extension() {
1919

2020
override fun createUI(): JPanel {
2121

22-
val checkBox = JCheckBox("Enable Add a Keep Annotation To The Class").apply {
22+
val checkBox = JCheckBox("Add @Keep Annotation On Class ").apply {
2323
isSelected = getConfig(configKey).toBoolean()
2424
addActionListener {
2525
setConfig(configKey, isSelected.toString())
2626
}
2727
}
2828

29-
return panel {
30-
row {
31-
checkBox()
32-
}
29+
return horizontalLinearLayout {
30+
checkBox()
3331
}
3432
}
3533

src/main/kotlin/extensions/jose/han/ParcelableAnnotationSupport.kt

Lines changed: 28 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11
package extensions.jose.han;
22

3-
import com.intellij.ide.BrowserUtil
4-
import com.intellij.ui.layout.panel
53
import extensions.Extension
64
import wu.seal.jsontokotlin.classscodestruct.Annotation
75
import wu.seal.jsontokotlin.classscodestruct.KotlinDataClass
6+
import wu.seal.jsontokotlin.ui.horizontalLinearLayout
7+
import java.awt.Cursor
8+
import java.awt.Desktop
9+
import java.awt.event.MouseAdapter
10+
import java.awt.event.MouseEvent
11+
import java.net.URI
812
import javax.swing.JCheckBox
13+
import javax.swing.JLabel
914
import javax.swing.JPanel
1015

1116
/**
@@ -20,35 +25,43 @@ object ParcelableAnnotationSupport : Extension() {
2025

2126

2227
val checkBox = JCheckBox("Enable Parcelable Support ").apply {
23-
isSelected = ParcelableAnnotationSupport.getConfig(ParcelableAnnotationSupport.configKey).toBoolean()
28+
isSelected = getConfig(configKey).toBoolean()
2429
addActionListener {
25-
ParcelableAnnotationSupport.setConfig(ParcelableAnnotationSupport.configKey, isSelected.toString())
30+
setConfig(configKey, isSelected.toString())
2631
}
2732
}
2833

29-
return panel {
30-
row {
34+
val linkLabel = JLabel("<html><a href='https://github.com/wuseal/JsonToKotlinClass/blob/master/parceable_support_tip.md'>Need Some Config</a></html>")
35+
linkLabel.addMouseListener(object : MouseAdapter() {
36+
override fun mouseClicked(e: MouseEvent?) {
37+
Desktop.getDesktop().browse(URI("https://github.com/wuseal/JsonToKotlinClass/blob/master/parceable_support_tip.md"))
38+
}
39+
40+
override fun mouseEntered(e: MouseEvent?) {
41+
linkLabel.cursor = Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)
42+
}
3143

32-
checkBox()
33-
right {
34-
link("Need Some Config") {
35-
BrowserUtil.browse("https://github.com/wuseal/JsonToKotlinClass/blob/master/parceable_support_tip.md.md")
36-
}
37-
}
44+
override fun mouseExited(e: MouseEvent?) {
45+
linkLabel.cursor = Cursor.getDefaultCursor()
3846
}
47+
})
48+
49+
return horizontalLinearLayout {
50+
checkBox()
51+
linkLabel()
3952
}
4053
}
4154

4255
override fun intercept(kotlinDataClass: KotlinDataClass): KotlinDataClass {
43-
return if (ParcelableAnnotationSupport.getConfig(ParcelableAnnotationSupport.configKey).toBoolean()) {
56+
return if (getConfig(configKey).toBoolean()) {
4457

4558
val classAnnotationString1 = "@SuppressLint(\"ParcelCreator\")"
4659
val classAnnotationString2 = "@Parcelize"
4760

4861
val classAnnotation1 = Annotation.fromAnnotationString(classAnnotationString1)
4962
val classAnnotation2 = Annotation.fromAnnotationString(classAnnotationString2)
5063

51-
return kotlinDataClass.copy(annotations = listOf(classAnnotation1,classAnnotation2),parentClassTemplate = "Parcelable")
64+
return kotlinDataClass.copy(annotations = listOf(classAnnotation1, classAnnotation2), parentClassTemplate = "Parcelable")
5265
} else {
5366
kotlinDataClass
5467
}
@@ -58,7 +71,7 @@ object ParcelableAnnotationSupport : Extension() {
5871

5972
val classAnnotationImportClassString = "import kotlinx.android.parcel.Parcelize".append("import android.os.Parcelable")
6073

61-
return if (ParcelableAnnotationSupport.getConfig(ParcelableAnnotationSupport.configKey).toBoolean()) {
74+
return if (getConfig(configKey).toBoolean()) {
6275
originClassImportDeclaration.append(classAnnotationImportClassString)
6376
} else {
6477
originClassImportDeclaration

src/main/kotlin/extensions/ted/zeng/PropertyAnnotationLineSupport.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package extensions.ted.zeng
22

3-
import com.intellij.ui.layout.verticalPanel
43
import extensions.Extension
54
import wu.seal.jsontokotlin.classscodestruct.KotlinDataClass
65
import wu.seal.jsontokotlin.classscodestruct.Property
6+
import wu.seal.jsontokotlin.ui.horizontalLinearLayout
77
import javax.swing.JCheckBox
88
import javax.swing.JPanel
99

@@ -21,7 +21,7 @@ object PropertyAnnotationLineSupport : Extension() {
2121
setConfig(enable, isSelected.toString())
2222
}
2323
}
24-
return verticalPanel {
24+
return horizontalLinearLayout {
2525
checkBox()
2626
}
2727
}

src/main/kotlin/extensions/wu/seal/ClassNameSuffixSupport.kt

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
package extensions.wu.seal
22

3-
import com.intellij.ui.layout.panel
43
import com.intellij.util.ui.JBDimension
5-
import com.intellij.util.ui.JBEmptyBorder
64
import extensions.Extension
75
import wu.seal.jsontokotlin.classscodestruct.KotlinDataClass
6+
import wu.seal.jsontokotlin.ui.horizontalLinearLayout
87
import wu.seal.jsontokotlin.utils.getChildType
98
import wu.seal.jsontokotlin.utils.getRawType
109
import java.awt.event.FocusEvent
@@ -47,13 +46,11 @@ object ClassNameSuffixSupport : Extension() {
4746
}
4847
}
4948

50-
return panel {
51-
row {
52-
checkBox()
53-
prefixJField()
54-
}
49+
return horizontalLinearLayout {
50+
checkBox()
51+
prefixJField()
5552
}.apply {
56-
border = JBEmptyBorder(6, 0, 0, 0)
53+
maximumSize = JBDimension(600,40)
5754
}
5855
}
5956

@@ -66,21 +63,21 @@ object ClassNameSuffixSupport : Extension() {
6663
val standTypes = listOf("Int", "Double", "Long", "String", "Boolean")
6764
val originName = kotlinDataClass.name
6865
val newPropertyTypes =
69-
kotlinDataClass.properties.map {
70-
val rawSubType = getChildType(getRawType(it.type))
71-
when {
72-
it.type.isMapType() -> {
73-
it.type//currently don't support map type
66+
kotlinDataClass.properties.map {
67+
val rawSubType = getChildType(getRawType(it.type))
68+
when {
69+
it.type.isMapType() -> {
70+
it.type//currently don't support map type
71+
}
72+
standTypes.contains(rawSubType) -> it.type
73+
else -> it.type.replace(rawSubType, rawSubType + suffix)
7474
}
75-
standTypes.contains(rawSubType) -> it.type
76-
else -> it.type.replace(rawSubType, rawSubType + suffix)
7775
}
78-
}
7976

8077
val newPropertyDefaultValues = kotlinDataClass.properties.map {
8178
val rawSubType = getChildType(getRawType(it.type))
8279
when {
83-
it.value.isEmpty()-> it.value
80+
it.value.isEmpty() -> it.value
8481
it.type.isMapType() -> {
8582
it.value//currently don't support map type
8683
}
@@ -95,7 +92,7 @@ object ClassNameSuffixSupport : Extension() {
9592

9693
val newValue = newPropertyDefaultValues[index]
9794

98-
property.copy(type = newType,value = newValue)
95+
property.copy(type = newType, value = newValue)
9996
}
10097

10198

src/main/kotlin/extensions/wu/seal/PropertyPrefixSupport.kt

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
package extensions.wu.seal
22

3-
import com.intellij.ui.layout.panel
43
import com.intellij.util.ui.JBDimension
5-
import com.intellij.util.ui.JBEmptyBorder
6-
import wu.seal.jsontokotlin.classscodestruct.KotlinDataClass
74
import extensions.Extension
5+
import wu.seal.jsontokotlin.classscodestruct.KotlinDataClass
6+
import wu.seal.jsontokotlin.ui.horizontalLinearLayout
87
import java.awt.event.FocusEvent
98
import java.awt.event.FocusListener
109
import javax.swing.JCheckBox
@@ -31,10 +30,7 @@ object PropertyPrefixSupport : Extension() {
3130
}
3231
})
3332

34-
minimumSize = JBDimension(150, 25)
35-
3633
isEnabled = getConfig(prefixKeyEnable).toBoolean()
37-
3834
}
3935

4036
val checkBox = JCheckBox("Prefix append before every property: ").apply {
@@ -45,14 +41,13 @@ object PropertyPrefixSupport : Extension() {
4541
}
4642
}
4743

48-
return panel {
49-
row {
50-
checkBox()
51-
prefixJField()
52-
}
44+
return horizontalLinearLayout {
45+
checkBox()
46+
prefixJField()
5347
}.apply {
54-
border = JBEmptyBorder(6, 0, 0, 0)
48+
maximumSize = JBDimension(600,40)
5549
}
50+
5651
}
5752

5853

src/main/kotlin/extensions/wu/seal/PropertySuffixSupport.kt

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
package extensions.wu.seal
22

3-
import com.intellij.ui.layout.panel
43
import com.intellij.util.ui.JBDimension
5-
import com.intellij.util.ui.JBEmptyBorder
6-
import wu.seal.jsontokotlin.classscodestruct.KotlinDataClass
74
import extensions.Extension
5+
import wu.seal.jsontokotlin.classscodestruct.KotlinDataClass
6+
import wu.seal.jsontokotlin.ui.horizontalLinearLayout
87
import java.awt.event.FocusEvent
98
import java.awt.event.FocusListener
109
import javax.swing.JCheckBox
@@ -41,13 +40,11 @@ object PropertySuffixSupport : Extension() {
4140
}
4241
}
4342

44-
return panel {
45-
row {
46-
checkBox()
47-
suffixJField()
48-
}
43+
return horizontalLinearLayout {
44+
checkBox()
45+
suffixJField()
4946
}.apply {
50-
border = JBEmptyBorder(6, 0, 0, 0)
47+
maximumSize = JBDimension(600,40)
5148
}
5249
}
5350

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,23 @@
11
package wu.seal.jsontokotlin.ui
22

3-
import com.intellij.ui.layout.panel
4-
import com.intellij.util.ui.JBDimension
3+
import com.intellij.util.ui.JBEmptyBorder
54
import extensions.ExtensionsCollector
6-
import java.awt.Color
7-
import java.awt.FlowLayout
5+
import java.awt.BorderLayout
86
import java.awt.LayoutManager
97
import javax.swing.JPanel
108

11-
class ExtensionsTab(layout: LayoutManager?, isDoubleBuffered: Boolean) : JPanel(layout, isDoubleBuffered) {
9+
class ExtensionsTab(layoutManager: LayoutManager?, isDoubleBuffered: Boolean) : JPanel(layoutManager, isDoubleBuffered) {
1210

13-
constructor(isDoubleBuffered: Boolean) : this(FlowLayout(), isDoubleBuffered)
11+
constructor(isDoubleBuffered: Boolean) : this(BorderLayout(), isDoubleBuffered)
1412

1513
init {
16-
17-
add(panel {
14+
add(verticalLinearLayout {
1815
ExtensionsCollector.extensions.forEach {
19-
row(separated = false) {
20-
it.createUI().apply {
21-
preferredSize = JBDimension(500, 0)
22-
}.invoke()
23-
}
16+
it.createUI().apply {
17+
border = JBEmptyBorder(5, 3, 5, 3)
18+
}()
2419
}
25-
}.apply {
26-
minimumSize = JBDimension(500, 300)
27-
preferredSize = JBDimension(500, 300)
28-
})
20+
},BorderLayout.CENTER)
2921
}
3022

3123
}

0 commit comments

Comments
 (0)