Skip to content
This repository has been archived by the owner on Jul 17, 2023. It is now read-only.

Commit

Permalink
Put an icon on most buttons
Browse files Browse the repository at this point in the history
  • Loading branch information
DeflatedPickle committed Nov 27, 2020
1 parent d33ca7a commit b06d8e2
Show file tree
Hide file tree
Showing 11 changed files with 62 additions and 32 deletions.
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ plugins {
}

group 'com.deflatedpickle'
version '1.6.1'
version '1.6.2'

allprojects {
apply plugin: 'org.jetbrains.kotlin.jvm'
Expand Down
3 changes: 3 additions & 0 deletions core/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -53,4 +53,7 @@ dependencies {
// Logging
implementation 'org.apache.logging.log4j:log4j-api:2.11.1'
implementation 'org.apache.logging.log4j:log4j-core:2.11.1'

// Icons
api 'com.github.DeflatedPickle:Nagato:v1.1.0'
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,12 @@
package com.deflatedpickle.quiver.frontend.extension

import java.awt.event.ActionEvent
import javax.swing.Icon
import javax.swing.JMenu
import javax.swing.JMenuItem

fun JMenu.add(text: String, action: (ActionEvent) -> Unit): JMenuItem {
val item = JMenuItem(text).apply { addActionListener { action(it) } }
fun JMenu.add(text: String, icon: Icon? = null, action: (ActionEvent) -> Unit): JMenuItem {
val item = JMenuItem(text, icon).apply { addActionListener { action(it) } }
this.add(item)
return item
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,12 @@
package com.deflatedpickle.quiver.frontend.extension

import java.awt.event.ActionEvent
import javax.swing.Icon
import javax.swing.JMenuItem
import javax.swing.JPopupMenu

fun JPopupMenu.add(text: String, action: (ActionEvent) -> Unit): JMenuItem {
val item = JMenuItem(text).apply { addActionListener { action(it) } }
fun JPopupMenu.add(text: String, icon: Icon? = null, action: (ActionEvent) -> Unit): JMenuItem {
val item = JMenuItem(text, icon).apply { addActionListener { action(it) } }
this.add(item)
return item
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,17 @@ package com.deflatedpickle.quiver.frontend.extension
import java.awt.Component
import javax.swing.JToolBar
import org.jdesktop.swingx.JXButton
import javax.swing.Icon

fun JToolBar.add(text: String, action: () -> Unit): Component = this.add(JXButton(text).apply {
addActionListener { action() }
})
fun JToolBar.add(text: String, action: () -> Unit): Component =
this.add(JXButton(text).apply {
addActionListener { action() }
})

fun JToolBar.add(icon: Icon, tooltip: String = "", action: () -> Unit): Component =
this.add(JXButton(icon).apply {
if (tooltip.isNotEmpty()) {
toolTipText = tooltip
}
addActionListener { action() }
})
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
package com.deflatedpickle.quiver.frontend.menu

import blue.endless.jankson.Jankson
import com.deflatedpickle.nagato.NagatoIcon
import com.deflatedpickle.quiver.Quiver
import com.deflatedpickle.quiver.backend.event.EventSearchFile
import com.deflatedpickle.quiver.backend.event.EventSearchFolder
Expand Down Expand Up @@ -43,7 +44,7 @@ class LinkedFilesPopupMenu(
val targetFile = file.parentFile.resolve("${file.name}.mcmeta")

if (targetFile.exists() && targetFile.isFile) {
this.add("Meta") {
this.add("Meta", NagatoIcon.FILE_JSON) {
EventSearchFile.trigger(targetFile)
}
}
Expand All @@ -53,7 +54,7 @@ class LinkedFilesPopupMenu(
val targetFile = file.parentFile.resolve("${file.name.split(".")[0]}.png")

if (targetFile.exists() && targetFile.isFile) {
this.add("Texture") {
this.add("Texture", NagatoIcon.PAINTING_BLANK) {
EventSearchFile.trigger(targetFile)
}
}
Expand All @@ -68,7 +69,7 @@ class LinkedFilesPopupMenu(
val entries = jsonObject.entries

when {
entries.size == 1 -> this.add("Texture") {
entries.size == 1 -> this.add("Texture", NagatoIcon.PAINTING_BLANK) {
this.searchTexture(
jsonObject.get(
String::class.java,
Expand All @@ -80,7 +81,7 @@ class LinkedFilesPopupMenu(
for ((key, _) in this.json
.load(file)
.getObject("textures")!!.entries) {
this.texturesMenu.add(key) {
this.texturesMenu.add(key, NagatoIcon.PAINTING_BLANK) {
this.searchTexture(
jsonObject.get(
String::class.java,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
package com.deflatedpickle.quiver.frontend.widget

import com.deflatedpickle.nagato.NagatoIcon
import org.jdesktop.swingx.JXSearchField
import org.jdesktop.swingx.search.Searchable
import java.util.regex.Pattern
import javax.swing.JCheckBox
import javax.swing.JSeparator
import javax.swing.JToolBar
import javax.swing.*

class SearchToolbar(
private val searchable: Searchable
Expand All @@ -14,24 +13,30 @@ class SearchToolbar(
searchMode = JXSearchField.SearchMode.INSTANT
}

private val backwardsCheckbox = JCheckBox("Backwards")
private val backwardsCheckbox = JToggleButton(NagatoIcon.UNDO).apply {
toolTipText = "Backwards"
}

// Regex checks
private val caseInsensitiveCheckbox = JCheckBox("Case Insensitive").apply {
isSelected = true
private val matchCaseCheckbox = JToggleButton(NagatoIcon.CASE_INSENSITIVE).apply {
toolTipText = "Match Case"
}
private val ignoreWhitespaceCheckbox = JCheckBox("Ignore Whitespace").apply {
private val ignoreWhitespaceCheckbox = JToggleButton(NagatoIcon.IGNORE_WHITESPACE).apply {
toolTipText = "Ignore Whitespace"
isSelected = true
}

// Non-regex checks
private val stripSpecialChecks = JCheckBox("Strip Special Characters")
private val stripSpecialChecks = JToggleButton(NagatoIcon.STRIP_SPECIAL_CHARACTERS).apply {
toolTipText = "Strip Special Characters"
isSelected = true
}

init {
this.add(this.searchField)
this.add(this.backwardsCheckbox)
this.addSeparator()
this.add(this.caseInsensitiveCheckbox)
this.add(this.matchCaseCheckbox)
this.add(this.ignoreWhitespaceCheckbox)
this.addSeparator()
this.add(this.stripSpecialChecks)
Expand All @@ -45,7 +50,7 @@ class SearchToolbar(

this.search(
search,
this.caseInsensitiveCheckbox.isSelected,
!this.matchCaseCheckbox.isSelected,
this.ignoreWhitespaceCheckbox.isSelected
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ package com.deflatedpickle.quiver.filepanel

import com.alexandriasoftware.swing.JSplitButton
import com.deflatedpickle.haruhi.component.PluginPanel
import com.deflatedpickle.nagato.NagatoIcon
import com.deflatedpickle.quiver.Quiver
import com.deflatedpickle.quiver.filepanel.widget.ReplaceButton
import com.deflatedpickle.quiver.frontend.extension.add
Expand Down Expand Up @@ -31,26 +32,28 @@ object FilePanel : PluginPanel() {
private val fileSizeLabel = JXLabel("File Size")
val fileSize = JXLabel()

private val openButton = JSplitButton("Open ").apply {
private val openButton = JSplitButton(" ", NagatoIcon.FOLDER_OPEN_FILE).apply {
popupMenu = JPopupMenu("Open Alternatives").apply {
this.add("Open Folder") { Desktop.getDesktop().open(Quiver.selectedFile?.parentFile) }
this.add("Open Folder", NagatoIcon.FOLDER_OPEN) { Desktop.getDesktop().open(Quiver.selectedFile?.parentFile) }
}
toolTipText = "Open File"
isEnabled = false

addButtonClickedActionListener {
Desktop.getDesktop().open(Quiver.selectedFile)
}
}

private val editButton = JXButton("Edit").apply {
private val editButton = JXButton(NagatoIcon.PENCIL).apply {
toolTipText = "Edit"
isEnabled = false

addActionListener {
Desktop.getDesktop().edit(Quiver.selectedFile)
}
}

private val replaceButton = ReplaceButton("Replace").apply {
private val replaceButton = ReplaceButton().apply {
isEnabled = false
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
package com.deflatedpickle.quiver.filepanel.widget

import com.deflatedpickle.haruhi.util.PluginUtil
import com.deflatedpickle.nagato.NagatoIcon
import com.deflatedpickle.quiver.Quiver
import com.deflatedpickle.quiver.backend.event.EventReplaceFile
import com.deflatedpickle.quiver.filepanel.FilePanelPlugin
Expand All @@ -17,8 +18,10 @@ import javax.swing.filechooser.FileNameExtensionFilter
import org.apache.commons.io.FileUtils
import org.jdesktop.swingx.JXButton

class ReplaceButton(text: String) : JXButton(text) {
class ReplaceButton : JXButton(NagatoIcon.REPLACE) {
init {
this.toolTipText = "Replace"

this.addActionListener()
this.addDropTarget()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import com.deflatedpickle.haruhi.api.plugin.Plugin
import com.deflatedpickle.haruhi.api.plugin.PluginType
import com.deflatedpickle.haruhi.event.EventProgramFinishSetup
import com.deflatedpickle.haruhi.util.ConfigUtil
import com.deflatedpickle.nagato.NagatoIcon
import com.deflatedpickle.quiver.backend.event.EventSearchFile
import com.deflatedpickle.quiver.backend.event.EventSelectFile
import com.deflatedpickle.quiver.backend.event.EventSelectFolder
Expand Down Expand Up @@ -43,7 +44,7 @@ object FileTablePlugin {
else null
}

private val linkButton = JSplitButton("Linked ").apply {
private val linkButton = JSplitButton(" ", NagatoIcon.CHAIN_LINK).apply {
popupMenu = fileLinkMenu
isEnabled = false
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,11 @@ import com.deflatedpickle.haruhi.api.plugin.Plugin
import com.deflatedpickle.haruhi.api.plugin.PluginType
import com.deflatedpickle.haruhi.event.EventProgramFinishSetup
import com.deflatedpickle.haruhi.util.RegistryUtil
import com.deflatedpickle.nagato.NagatoIcon
import com.deflatedpickle.quiver.backend.util.ActionUtil
import com.deflatedpickle.quiver.frontend.extension.add
import com.deflatedpickle.quiver.launcher.window.Toolbar
import javax.swing.JComponent
import javax.swing.JMenu

@Plugin(
Expand All @@ -28,13 +30,13 @@ object LauncherPlugin {
EventProgramFinishSetup.addListener {
val menuBar = RegistryUtil.get(MenuCategory.MENU.name)
(menuBar?.get(MenuCategory.FILE.name) as JMenu).apply {
add("New Pack") { ActionUtil.newPack() }
add("Open Pack") { ActionUtil.openPack() }
add("New Pack", NagatoIcon.FOLDER_NEW) { ActionUtil.newPack() }
add("Open Pack", NagatoIcon.FOLDER_OPEN) { ActionUtil.openPack() }
addSeparator()
}

Toolbar.add("New Pack") { ActionUtil.newPack() }
Toolbar.add("Open Pack") { ActionUtil.openPack() }
Toolbar.add(NagatoIcon.FOLDER_NEW, "New Pack") { ActionUtil.newPack() } as JComponent
Toolbar.add(NagatoIcon.FOLDER_OPEN, "Open Pack") { ActionUtil.openPack() }
}
}
}

0 comments on commit b06d8e2

Please sign in to comment.