Skip to content

Commit

Permalink
migrated some ui files
Browse files Browse the repository at this point in the history
  • Loading branch information
MohammadMD1383 committed Nov 3, 2023
1 parent f8e9e76 commit 1482315
Show file tree
Hide file tree
Showing 7 changed files with 74 additions and 130 deletions.
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ intellij {
plugins.add("com.intellij.java")
plugins.add("org.jetbrains.kotlin")
plugins.add("JavaScript")
plugins.add("org.jetbrains.plugins.go:233.11361.10")
plugins.add("org.jetbrains.plugins.go:233.11555.11")

localPath.set("/path/to/intellij-idea-ultimate")
}
Expand Down
15 changes: 15 additions & 0 deletions src/main/java/ir/mmd/intellijDev/Actionable/ActionableBundle.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package ir.mmd.intellijDev.Actionable

import com.intellij.DynamicBundle
import org.jetbrains.annotations.PropertyKey

private const val BUNDLE = "strings"

object ActionableBundle : DynamicBundle(BUNDLE) {
fun string(@PropertyKey(resourceBundle = BUNDLE) key: String, vararg params: Any) =
getMessage(key, *params)

@Suppress("unused")
fun stringPointer(@PropertyKey(resourceBundle = BUNDLE) key: String, vararg params: Any) =
getLazyMessage(key, *params)
}
52 changes: 0 additions & 52 deletions src/main/java/ir/mmd/intellijDev/Actionable/find/settings/UI.form

This file was deleted.

49 changes: 18 additions & 31 deletions src/main/java/ir/mmd/intellijDev/Actionable/find/settings/UI.kt
Original file line number Diff line number Diff line change
@@ -1,36 +1,23 @@
package ir.mmd.intellijDev.Actionable.find.settings;
package ir.mmd.intellijDev.Actionable.find.settings

import javax.swing.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import com.intellij.ui.dsl.builder.*
import ir.mmd.intellijDev.Actionable.ActionableBundle
import ir.mmd.intellijDev.Actionable.util.observableMutablePropertyOf

public class UI {
private JPanel component;
private JCheckBox caseSensitiveCheckBox;
private JButton caseSensitiveCheckBoxDefault;
class UI {
private val isCaseSensitiveProperty = observableMutablePropertyOf(SettingsState.Defaults.isCaseSensitive)
var isCaseSensitive by isCaseSensitiveProperty

public UI() {
initListeners();
}

private void initListeners() {
caseSensitiveCheckBoxDefault.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
caseSensitiveCheckBox.setSelected(SettingsState.Defaults.isCaseSensitive);
}
});
}

public JPanel getComponent() {
return component;
}

public boolean isCaseSensitive() {
return caseSensitiveCheckBox.isSelected();
}

public void setCaseSensitive(boolean b) {
caseSensitiveCheckBox.setSelected(b);
val component = panel {
row {
checkBox(ActionableBundle.string("findPanel.caseSensitiveCheckBox.label"))
.bindSelected(isCaseSensitiveProperty)
.align(Align.FILL)
.comment(ActionableBundle.string("findPanel.caseSensitiveCheckBox.comment"))

button(ActionableBundle.string("global.defaultButton.label")) {
isCaseSensitive = SettingsState.Defaults.isCaseSensitive
}.align(AlignX.RIGHT + AlignY.CENTER)
}
}
}
29 changes: 0 additions & 29 deletions src/main/java/ir/mmd/intellijDev/Actionable/text/settings/UI.form

This file was deleted.

34 changes: 17 additions & 17 deletions src/main/java/ir/mmd/intellijDev/Actionable/text/settings/UI.kt
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
package ir.mmd.intellijDev.Actionable.text.settings;
package ir.mmd.intellijDev.Actionable.text.settings

import org.jetbrains.annotations.NotNull;
import com.intellij.ui.dsl.builder.*
import ir.mmd.intellijDev.Actionable.ActionableBundle
import ir.mmd.intellijDev.Actionable.util.observableMutablePropertyOf

import javax.swing.*;

public class UI {
private JPanel component;
private JCheckBox preserveCaseCheckbox;

public @NotNull JPanel getComponent() {
return component;
}

public boolean getPreserveCase() {
return preserveCaseCheckbox.isSelected();
}
class UI {
private val preserveCaseProperty = observableMutablePropertyOf(SettingsState.Defaults.preserveCase)
var preserveCase by preserveCaseProperty

public void setPreserveCase(boolean b) {
preserveCaseCheckbox.setSelected(b);
val component = panel {
row {
checkBox(ActionableBundle.string("textPanel.preserveCase.label"))
.bindSelected(preserveCaseProperty)
.align(Align.FILL)

button(ActionableBundle.string("global.defaultButton.label")) {
preserveCase = SettingsState.Defaults.preserveCase
}.align(AlignX.RIGHT + AlignY.CENTER)
}
}
}
23 changes: 23 additions & 0 deletions src/main/java/ir/mmd/intellijDev/Actionable/util/Helpers.kt
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package ir.mmd.intellijDev.Actionable.util

import com.intellij.openapi.Disposable
import com.intellij.openapi.observable.properties.ObservableMutableProperty
import com.intellij.openapi.util.Disposer
import com.intellij.util.application

/**
Expand Down Expand Up @@ -45,3 +48,23 @@ inline infix fun Boolean.then(block: () -> Unit) = also { if (this) block() }
*/
@Suppress("NOTHING_TO_INLINE")
inline fun <T> service(clazz: Class<T>): T = application.getService(clazz)

fun <T> observableMutablePropertyOf(initialValue: T) = object : ObservableMutableProperty<T> {
private var v = initialValue
private var listener: ((T) -> Unit)? = null

override fun get() = v
override fun set(value: T) {
v = value
listener?.let { it(v) }
}

override fun afterChange(parentDisposable: Disposable?, listener: (T) -> Unit) {
this.listener = listener
parentDisposable?.let {
Disposer.register(it) {
this.listener = null
}
}
}
}

0 comments on commit 1482315

Please sign in to comment.